Welcome to Abella 2.0.7-dev.
Abella < Set instantiations on.

Abella < Set witnesses on.

Abella < Set subgoals off.

Abella < Type a, b, c, d o.

Abella < Type tensor, par, plus, with o -> o -> o.

Abella < Type one, bot, zero, top o.

Abella < Type not, atom o -> o.

Abella < Define formula : o -> prop by 
formula (tensor A B) := formula A /\ formula B;
formula (plus A B) := formula A /\ formula B;
formula (with A B) := formula A /\ formula B;
formula (par A B) := formula A /\ formula B;
formula zero;
formula one;
formula bot;
formula top;
formula (atom A).

Abella < Import "../lib/merge" with is_o := formula.
Importing from "../lib/merge".

Abella < Define prove : (list o) -> (list o) -> prop by 
prove G D := exists A, adj nil (atom A) G /\ adj nil (atom A) D;
prove G D := G = nil /\ adj nil one D;
prove G D := exists G', adj G' one G /\ prove G' D;
prove G D := exists A B G' G1 G2, adj G' (tensor A B) G /\ adj G2 A G1 /\ adj G' B G2 /\
  prove G1 D;
prove G D := exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) D /\
  merge D1' D2' D' /\ merge G1 G2 G /\ adj D1' A D1 /\ adj D2' B D2 /\
  prove G1 D1 /\ prove G2 D2;
prove G D := D = nil /\ adj nil bot G;
prove G D := exists D', adj D' bot D /\ prove G D';
prove G D := exists A B D' D1 D2, adj D' (par A B) D /\ adj D2 A D1 /\ adj D' B D2 /\
  prove G D1;
prove G D := exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) G /\ merge G1' G2' G' /\
  merge D1 D2 D /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2;
prove G D := exists G', adj G' zero G /\ is_list D;
prove G D := exists D', adj D' top D /\ is_list G;
prove G D := exists A B G' G1, adj G' (with A B) G /\ adj G' A G1 /\ prove G1 D;
prove G D := exists A B G' G1, adj G' (with A B) G /\ adj G' B G1 /\ prove G1 D;
prove G D := exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) D /\ adj D' A D1 /\
  adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G /\
  perm G2 G;
prove G D := exists A B D' D1, adj D' (plus A B) D /\ adj D' A D1 /\ prove G D1;
prove G D := exists A B D' D1, adj D' (plus A B) D /\ adj D' B D1 /\ prove G D1;
prove G D := exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) G /\ adj G' A G1 /\
  adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D /\
  perm D2 D.

Abella < Theorem prove_is_list : 
forall G D, prove G D -> is_list G /\ is_list D.


============================
 forall G D, prove G D -> is_list G /\ is_list D

prove_is_list < induction on 1.

IH : forall G D, prove G D * -> is_list G /\ is_list D
============================
 forall G D, prove G D @ -> is_list G /\ is_list D

prove_is_list < intros.

Variables: G D
IH : forall G D, prove G D * -> is_list G /\ is_list D
H1 : prove G D @
============================
 is_list G /\ is_list D

prove_is_list < case H1.
Subgoal 1:

Variables: G D A
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil (atom A) G
H3 : adj nil (atom A) D
============================
 is_list G /\ is_list D

16 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 1:

Variables: G D A
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil (atom A) G
H3 : adj nil (atom A) D
H4 : is_list G
============================
 is_list G /\ is_list D

16 other subgoals.

prove_is_list < apply adj_3_is_list to H3.
Subgoal 1:

Variables: G D A
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil (atom A) G
H3 : adj nil (atom A) D
H4 : is_list G
H5 : is_list D
============================
 is_list G /\ is_list D

16 other subgoals.

prove_is_list < search.
Witness: split(apply H4, apply H5).
Subgoal 2:

Variables: D
G <-- nil
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil one D
============================
 is_list nil /\ is_list D

15 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 2:

Variables: D
G <-- nil
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil one D
H3 : is_list D
============================
 is_list nil /\ is_list D

15 other subgoals.

prove_is_list < search.
Witness: split(unfold(is_list, 1, true), apply H3).
Subgoal 3:

Variables: G D G'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' one G
H3 : prove G' D *
============================
 is_list G /\ is_list D

14 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 3:

Variables: G D G'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' one G
H3 : prove G' D *
H4 : is_list G
============================
 is_list G /\ is_list D

14 other subgoals.

prove_is_list < apply IH to H3.
Subgoal 3:

Variables: G D G'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' one G
H3 : prove G' D *
H4 : is_list G
H5 : is_list G'
H6 : is_list D
============================
 is_list G /\ is_list D

14 other subgoals.

prove_is_list < search.
Witness: split(apply H4, apply H6).
Subgoal 4:

Variables: G D A B G' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (tensor A B) G
H3 : adj G3 A G2
H4 : adj G' B G3
H5 : prove G2 D *
============================
 is_list G /\ is_list D

13 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 4:

Variables: G D A B G' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (tensor A B) G
H3 : adj G3 A G2
H4 : adj G' B G3
H5 : prove G2 D *
H6 : is_list G
============================
 is_list G /\ is_list D

13 other subgoals.

prove_is_list < apply IH to H5.
Subgoal 4:

Variables: G D A B G' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (tensor A B) G
H3 : adj G3 A G2
H4 : adj G' B G3
H5 : prove G2 D *
H6 : is_list G
H7 : is_list G2
H8 : is_list D
============================
 is_list G /\ is_list D

13 other subgoals.

prove_is_list < search.
Witness: split(apply H6, apply H8).
Subgoal 5:

Variables: G D A B D' D2 D3 D1' D2' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (tensor A B) D
H3 : merge D1' D2' D'
H4 : merge G2 G3 G
H5 : adj D1' A D2
H6 : adj D2' B D3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
============================
 is_list G /\ is_list D

12 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 5:

Variables: G D A B D' D2 D3 D1' D2' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (tensor A B) D
H3 : merge D1' D2' D'
H4 : merge G2 G3 G
H5 : adj D1' A D2
H6 : adj D2' B D3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
H9 : is_list D
============================
 is_list G /\ is_list D

12 other subgoals.

prove_is_list < apply merge_3_is_list to H4.
Subgoal 5:

Variables: G D A B D' D2 D3 D1' D2' G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (tensor A B) D
H3 : merge D1' D2' D'
H4 : merge G2 G3 G
H5 : adj D1' A D2
H6 : adj D2' B D3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
H9 : is_list D
H10 : is_list G
============================
 is_list G /\ is_list D

12 other subgoals.

prove_is_list < search.
Witness: split(apply H10, apply H9).
Subgoal 6:

Variables: G
D <-- nil
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil bot G
============================
 is_list G /\ is_list nil

11 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 6:

Variables: G
D <-- nil
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj nil bot G
H3 : is_list G
============================
 is_list G /\ is_list nil

11 other subgoals.

prove_is_list < search.
Witness: split(apply H3, unfold(is_list, 1, true)).
Subgoal 7:

Variables: G D D'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' bot D
H3 : prove G D' *
============================
 is_list G /\ is_list D

10 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 7:

Variables: G D D'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' bot D
H3 : prove G D' *
H4 : is_list D
============================
 is_list G /\ is_list D

10 other subgoals.

prove_is_list < apply IH to H3.
Subgoal 7:

Variables: G D D'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' bot D
H3 : prove G D' *
H4 : is_list D
H5 : is_list G
H6 : is_list D'
============================
 is_list G /\ is_list D

10 other subgoals.

prove_is_list < search.
Witness: split(apply H5, apply H4).
Subgoal 8:

Variables: G D A B D' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (par A B) D
H3 : adj D3 A D2
H4 : adj D' B D3
H5 : prove G D2 *
============================
 is_list G /\ is_list D

9 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 8:

Variables: G D A B D' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (par A B) D
H3 : adj D3 A D2
H4 : adj D' B D3
H5 : prove G D2 *
H6 : is_list D
============================
 is_list G /\ is_list D

9 other subgoals.

prove_is_list < apply IH to H5.
Subgoal 8:

Variables: G D A B D' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (par A B) D
H3 : adj D3 A D2
H4 : adj D' B D3
H5 : prove G D2 *
H6 : is_list D
H7 : is_list G
H8 : is_list D2
============================
 is_list G /\ is_list D

9 other subgoals.

prove_is_list < search.
Witness: split(apply H7, apply H6).
Subgoal 9:

Variables: G D A B G' G2 G3 G1' G2' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (par A B) G
H3 : merge G1' G2' G'
H4 : merge D2 D3 D
H5 : adj G1' A G2
H6 : adj G2' B G3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
============================
 is_list G /\ is_list D

8 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 9:

Variables: G D A B G' G2 G3 G1' G2' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (par A B) G
H3 : merge G1' G2' G'
H4 : merge D2 D3 D
H5 : adj G1' A G2
H6 : adj G2' B G3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
H9 : is_list G
============================
 is_list G /\ is_list D

8 other subgoals.

prove_is_list < apply merge_3_is_list to H4.
Subgoal 9:

Variables: G D A B G' G2 G3 G1' G2' D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (par A B) G
H3 : merge G1' G2' G'
H4 : merge D2 D3 D
H5 : adj G1' A G2
H6 : adj G2' B G3
H7 : prove G2 D2 *
H8 : prove G3 D3 *
H9 : is_list G
H10 : is_list D
============================
 is_list G /\ is_list D

8 other subgoals.

prove_is_list < search.
Witness: split(apply H9, apply H10).
Subgoal 10:

Variables: G D G'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' zero G
H3 : is_list D
============================
 is_list G /\ is_list D

7 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 10:

Variables: G D G'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' zero G
H3 : is_list D
H4 : is_list G
============================
 is_list G /\ is_list D

7 other subgoals.

prove_is_list < search.
Witness: split(apply H4, apply H3).
Subgoal 11:

Variables: G D D'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' top D
H3 : is_list G
============================
 is_list G /\ is_list D

6 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 11:

Variables: G D D'
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' top D
H3 : is_list G
H4 : is_list D
============================
 is_list G /\ is_list D

6 other subgoals.

prove_is_list < search.
Witness: split(apply H3, apply H4).
Subgoal 12:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' A G2
H4 : prove G2 D *
============================
 is_list G /\ is_list D

5 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 12:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' A G2
H4 : prove G2 D *
H5 : is_list G
============================
 is_list G /\ is_list D

5 other subgoals.

prove_is_list < apply IH to H4.
Subgoal 12:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' A G2
H4 : prove G2 D *
H5 : is_list G
H6 : is_list G2
H7 : is_list D
============================
 is_list G /\ is_list D

5 other subgoals.

prove_is_list < search.
Witness: split(apply H5, apply H7).
Subgoal 13:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' B G2
H4 : prove G2 D *
============================
 is_list G /\ is_list D

4 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 13:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' B G2
H4 : prove G2 D *
H5 : is_list G
============================
 is_list G /\ is_list D

4 other subgoals.

prove_is_list < apply IH to H4.
Subgoal 13:

Variables: G D A B G' G2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (with A B) G
H3 : adj G' B G2
H4 : prove G2 D *
H5 : is_list G
H6 : is_list G2
H7 : is_list D
============================
 is_list G /\ is_list D

4 other subgoals.

prove_is_list < search.
Witness: split(apply H5, apply H7).
Subgoal 14:

Variables: G D A B D' D2' D2 D3 G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (with A B) D
H3 : adj D' A D2
H4 : adj D2' B D3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm D2' D'
H8 : perm G2 G
H9 : perm G3 G
============================
 is_list G /\ is_list D

3 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 14:

Variables: G D A B D' D2' D2 D3 G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (with A B) D
H3 : adj D' A D2
H4 : adj D2' B D3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm D2' D'
H8 : perm G2 G
H9 : perm G3 G
H10 : is_list D
============================
 is_list G /\ is_list D

3 other subgoals.

prove_is_list < apply perm_2_is_list to H8.
Subgoal 14:

Variables: G D A B D' D2' D2 D3 G2 G3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (with A B) D
H3 : adj D' A D2
H4 : adj D2' B D3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm D2' D'
H8 : perm G2 G
H9 : perm G3 G
H10 : is_list D
H11 : is_list G
============================
 is_list G /\ is_list D

3 other subgoals.

prove_is_list < search.
Witness: split(apply H11, apply H10).
Subgoal 15:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' A D2
H4 : prove G D2 *
============================
 is_list G /\ is_list D

2 other subgoals.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 15:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' A D2
H4 : prove G D2 *
H5 : is_list D
============================
 is_list G /\ is_list D

2 other subgoals.

prove_is_list < apply IH to H4.
Subgoal 15:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' A D2
H4 : prove G D2 *
H5 : is_list D
H6 : is_list G
H7 : is_list D2
============================
 is_list G /\ is_list D

2 other subgoals.

prove_is_list < search.
Witness: split(apply H6, apply H5).
Subgoal 16:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' B D2
H4 : prove G D2 *
============================
 is_list G /\ is_list D

1 other subgoal.

prove_is_list < apply adj_3_is_list to H2.
Subgoal 16:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' B D2
H4 : prove G D2 *
H5 : is_list D
============================
 is_list G /\ is_list D

1 other subgoal.

prove_is_list < apply IH to H4.
Subgoal 16:

Variables: G D A B D' D2
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj D' (plus A B) D
H3 : adj D' B D2
H4 : prove G D2 *
H5 : is_list D
H6 : is_list G
H7 : is_list D2
============================
 is_list G /\ is_list D

1 other subgoal.

prove_is_list < search.
Witness: split(apply H6, apply H5).
Subgoal 17:

Variables: G D A B G' G2' G2 G3 D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (plus A B) G
H3 : adj G' A G2
H4 : adj G2' B G3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm G2' G'
H8 : perm D2 D
H9 : perm D3 D
============================
 is_list G /\ is_list D

prove_is_list < apply adj_3_is_list to H2.
Subgoal 17:

Variables: G D A B G' G2' G2 G3 D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (plus A B) G
H3 : adj G' A G2
H4 : adj G2' B G3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm G2' G'
H8 : perm D2 D
H9 : perm D3 D
H10 : is_list G
============================
 is_list G /\ is_list D

prove_is_list < apply perm_2_is_list to H8.
Subgoal 17:

Variables: G D A B G' G2' G2 G3 D2 D3
IH : forall G D, prove G D * -> is_list G /\ is_list D
H2 : adj G' (plus A B) G
H3 : adj G' A G2
H4 : adj G2' B G3
H5 : prove G2 D2 *
H6 : prove G3 D3 *
H7 : perm G2' G'
H8 : perm D2 D
H9 : perm D3 D
H10 : is_list G
H11 : is_list D
============================
 is_list G /\ is_list D

prove_is_list < search.
Witness: split(apply H10, apply H11).
Proof completed.
Abella < Theorem perm_merge_1_nil : 
forall L L', perm L L' -> merge nil L L'.


============================
 forall L L', perm L L' -> merge nil L L'

perm_merge_1_nil < induction on 1.

IH : forall L L', perm L L' * -> merge nil L L'
============================
 forall L L', perm L L' @ -> merge nil L L'

perm_merge_1_nil < intros.

Variables: L L'
IH : forall L L', perm L L' * -> merge nil L L'
H1 : perm L L' @
============================
 merge nil L L'

perm_merge_1_nil < case H1.
Subgoal 1:

L <-- nil
L' <-- nil
IH : forall L L', perm L L' * -> merge nil L L'
============================
 merge nil nil nil

1 other subgoal.

perm_merge_1_nil < search.
Witness: unfold(merge, 1, true).
Subgoal 2:

Variables: L L' A KK LL
IH : forall L L', perm L L' * -> merge nil L L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
============================
 merge nil L L'

perm_merge_1_nil < apply IH to H4.
Subgoal 2:

Variables: L L' A KK LL
IH : forall L L', perm L L' * -> merge nil L L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge nil KK LL
============================
 merge nil L L'

perm_merge_1_nil < apply add_to_merge_right to H2 H5.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge nil L L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge nil KK LL
H6 : merge nil L M
H7 : adj LL A M
============================
 merge nil L L'

perm_merge_1_nil < apply adj_same_source to H7 H3.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge nil L L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge nil KK LL
H6 : merge nil L M
H7 : adj LL A M
H8 : perm M L'
============================
 merge nil L L'

perm_merge_1_nil < apply perm_merge_3 to H6 H8.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge nil L L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge nil KK LL
H6 : merge nil L M
H7 : adj LL A M
H8 : perm M L'
H9 : merge nil L L'
============================
 merge nil L L'

perm_merge_1_nil < search.
Witness: apply H9.
Proof completed.
Abella < Theorem perm_merge_2_nil : 
forall L L', perm L L' -> merge L nil L'.


============================
 forall L L', perm L L' -> merge L nil L'

perm_merge_2_nil < induction on 1.

IH : forall L L', perm L L' * -> merge L nil L'
============================
 forall L L', perm L L' @ -> merge L nil L'

perm_merge_2_nil < intros.

Variables: L L'
IH : forall L L', perm L L' * -> merge L nil L'
H1 : perm L L' @
============================
 merge L nil L'

perm_merge_2_nil < case H1.
Subgoal 1:

L <-- nil
L' <-- nil
IH : forall L L', perm L L' * -> merge L nil L'
============================
 merge nil nil nil

1 other subgoal.

perm_merge_2_nil < search.
Witness: unfold(merge, 1, true).
Subgoal 2:

Variables: L L' A KK LL
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
============================
 merge L nil L'

perm_merge_2_nil < apply IH to H4.
Subgoal 2:

Variables: L L' A KK LL
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge KK nil LL
============================
 merge L nil L'

perm_merge_2_nil < apply add_to_merge_left to H2 H5.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge KK nil LL
H6 : merge L nil M
H7 : adj LL A M
============================
 merge L nil L'

perm_merge_2_nil < apply adj_same_source to H3 H7.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge KK nil LL
H6 : merge L nil M
H7 : adj LL A M
H8 : perm L' M
============================
 merge L nil L'

perm_merge_2_nil < apply perm_sym to *H8.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge KK nil LL
H6 : merge L nil M
H7 : adj LL A M
H9 : perm M L'
============================
 merge L nil L'

perm_merge_2_nil < apply perm_merge_3 to H6 H9.
Subgoal 2:

Variables: L L' A KK LL M
IH : forall L L', perm L L' * -> merge L nil L'
H2 : adj KK A L
H3 : adj LL A L'
H4 : perm KK LL *
H5 : merge KK nil LL
H6 : merge L nil M
H7 : adj LL A M
H9 : perm M L'
H10 : merge L nil L'
============================
 merge L nil L'

perm_merge_2_nil < search.
Witness: apply H10.
Proof completed.
Abella < Theorem list_merge_1 : 
forall L, is_list L -> merge L nil L.


============================
 forall L, is_list L -> merge L nil L

list_merge_1 < induction on 1.

IH : forall L, is_list L * -> merge L nil L
============================
 forall L, is_list L @ -> merge L nil L

list_merge_1 < intros.

Variables: L
IH : forall L, is_list L * -> merge L nil L
H1 : is_list L @
============================
 merge L nil L

list_merge_1 < case H1.
Subgoal 1:

L <-- nil
IH : forall L, is_list L * -> merge L nil L
============================
 merge nil nil nil

1 other subgoal.

list_merge_1 < search.
Witness: unfold(merge, 1, true).
Subgoal 2:

Variables: L1 A
L <-- A :: L1
IH : forall L, is_list L * -> merge L nil L
H2 : formula A
H3 : is_list L1 *
============================
 merge (A :: L1) nil (A :: L1)

list_merge_1 < apply IH to H3.
Subgoal 2:

Variables: L1 A
L <-- A :: L1
IH : forall L, is_list L * -> merge L nil L
H2 : formula A
H3 : is_list L1 *
H4 : merge L1 nil L1
============================
 merge (A :: L1) nil (A :: L1)

list_merge_1 < search.
Witness: unfold(merge, 2, exists[A1 = A, JJ = L1, LL = L1] split(split(unfold(adj, 1, split(apply H2, apply H3)), unfold(adj, 1, split(apply H2, apply H3))), apply H4)).
Proof completed.
Abella < Theorem list_merge_2 : 
forall L, is_list L -> merge nil L L.


============================
 forall L, is_list L -> merge nil L L

list_merge_2 < induction on 1.

IH : forall L, is_list L * -> merge nil L L
============================
 forall L, is_list L @ -> merge nil L L

list_merge_2 < intros.

Variables: L
IH : forall L, is_list L * -> merge nil L L
H1 : is_list L @
============================
 merge nil L L

list_merge_2 < case H1.
Subgoal 1:

L <-- nil
IH : forall L, is_list L * -> merge nil L L
============================
 merge nil nil nil

1 other subgoal.

list_merge_2 < search.
Witness: unfold(merge, 1, true).
Subgoal 2:

Variables: L1 A
L <-- A :: L1
IH : forall L, is_list L * -> merge nil L L
H2 : formula A
H3 : is_list L1 *
============================
 merge nil (A :: L1) (A :: L1)

list_merge_2 < apply IH to H3.
Subgoal 2:

Variables: L1 A
L <-- A :: L1
IH : forall L, is_list L * -> merge nil L L
H2 : formula A
H3 : is_list L1 *
H4 : merge nil L1 L1
============================
 merge nil (A :: L1) (A :: L1)

list_merge_2 < search.
Witness: unfold(merge, 3, exists[A1 = A, KK = L1, LL = L1] split(split(unfold(adj, 1, split(apply H2, apply H3)), unfold(adj, 1, split(apply H2, apply H3))), apply H4)).
Proof completed.
Abella < Theorem cut_admissibility : 
forall C G1 D1 D1' G2 G2' D2, formula C -> prove G1 D1 -> prove G2 D2 ->
  adj D1' C D1 -> adj G2' C G2 ->
  (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3).


============================
 forall C G1 D1 D1' G2 G2' D2, formula C -> prove G1 D1 -> prove G2 D2 ->
   adj D1' C D1 -> adj G2' C G2 ->
   (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)

cut_admissibility < induction on 1.

IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
============================
 forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 -> prove G2 D2 ->
   adj D1' C D1 -> adj G2' C G2 ->
   (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)

cut_admissibility < induction on 2.

IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
============================
 forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
   prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
   (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)

cut_admissibility < induction on 3.

IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
============================
 forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
   prove G2 D2 @@@ -> adj D1' C D1 -> adj G2' C G2 ->
   (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)

cut_admissibility < intros.

Variables: C G1 D1 D1' G2 G2' D2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula C @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' C D1
H5 : adj G2' C G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < case H1 (keep).
Subgoal 1:

Variables: G1 D1 D1' G2 G2' D2 B A
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 1.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H9 : adj nil (atom A1) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H9.
Subgoal 1.1:

Variables: G1 D1' G2 G2' D2 B A A1
C <-- tensor A B
D1 <-- atom A1 :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) (atom A1 :: nil)
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H4.
Subgoal 1.1:

Variables: G1 G2 G2' D2 B A A1 K
C <-- tensor A B
D1 <-- atom A1 :: nil
D1' <-- atom A1 :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
H12 : formula (atom A1)
H13 : adj K (tensor A B) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A1 :: K) D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H13.
Subgoal 1.2:

Variables: D1 D1' G2 G2' D2 B A
C <-- tensor A B
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H8.
Subgoal 1.2:

Variables: D1' G2 G2' D2 B A
C <-- tensor A B
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) (one :: nil)
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H4.
Subgoal 1.2:

Variables: G2 G2' D2 B A K
C <-- tensor A B
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
H11 : formula one
H12 : adj K (tensor A B) nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H12.
Subgoal 1.3:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 1.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H10.
Subgoal 1.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
H13 : merge G2' G1 M
H14 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H13, apply H11), unfold(prove, 3, exists[G' = G3] split(apply H14, apply H12))).
Subgoal 1.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H4 H5.
Subgoal 1.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H9.
Subgoal 1.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 1.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H18.
Subgoal 1.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
H19 : merge G2' G1 M
H20 : adj LL1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H19, apply H13), unfold(prove, 4, exists[A = A1, B = B1, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H20, apply H15), apply H17), apply H14))).
Subgoal 1.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : tensor A B = tensor A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H15.
Subgoal 1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 1.5.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj nil (atom A2) G2
H18 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

37 other subgoals.

cut_admissibility < case H17.
Subgoal 1.5.1.1:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2
C <-- tensor A1 B1
G2 <-- atom A2 :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) (atom A2 :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H18 : adj nil (atom A2) D2
H19 : formula (atom A2)
H20 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

37 other subgoals.

cut_admissibility < case H5.
Subgoal 1.5.1.1:

Variables: G1 D1 D1' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 K
C <-- tensor A1 B1
G2 <-- atom A2 :: nil
G2' <-- atom A2 :: K
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H18 : adj nil (atom A2) D2
H19 : formula (atom A2)
H20 : is_list nil
H21 : formula (atom A2)
H22 : adj K (tensor A1 B1) nil
============================
 exists G3 D3, merge (atom A2 :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

37 other subgoals.

cut_admissibility < case H22.
Subgoal 1.5.1.2:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A1 B1
G2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < case H5.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G'
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G'
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H19 : tensor A1 B1 = one /\ perm G2' G' \/
        (exists KK, adj KK (tensor A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H19.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H20.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply adj_swap to H20 H17.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5 U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
H24 : adj KK one U
H25 : adj U (tensor A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply add_to_merge_left to H24 H21.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5 U M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
H24 : adj KK one U
H25 : adj U (tensor A1 B1) G2
H26 : merge U G1 M
H27 : adj G5 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply adj_same_result to H5 H25.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5 U M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
H24 : adj KK one U
H25 : adj U (tensor A1 B1) G2
H26 : merge U G1 M
H27 : adj G5 one M
H28 : perm G2' U
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply perm_sym to H28.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5 U M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
H24 : adj KK one U
H25 : adj U (tensor A1 B1) G2
H26 : merge U G1 M
H27 : adj G5 one M
H28 : perm G2' U
H29 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H29.
Subgoal 1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK G5 D5 U M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' one G2
H18 : prove G' D2 ***
H20 : adj KK (tensor A1 B1) G'
H21 : merge KK G1 G5
H22 : merge D2 D1' D5
H23 : prove G5 D5
H24 : adj KK one U
H25 : adj U (tensor A1 B1) G2
H26 : merge U G1 M
H27 : adj G5 one M
H28 : perm G2' U
H29 : perm U G2'
H30 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H30, apply H22), unfold(prove, 3, exists[G' = G5] split(apply H27, apply H23))).
Subgoal 1.5.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H21 : tensor A1 B1 = tensor A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (tensor A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H21.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply IH to H6 H13 H20 H11 H18.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H19.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < apply IH to H7 H14 H25 H12 H26.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < exists G8.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 exists D3, merge G2' G1 G8 /\ merge D2 D1' D3 /\ prove G8 D3

35 other subgoals.

cut_admissibility < exists D6.
Subgoal 1.5.1.4.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 merge G2' G1 G8 /\ merge D2 D1' D6 /\ prove G8 D6

35 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.4.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 merge G2' G1 G8

37 other subgoals.

cut_admissibility < apply change_merge_order to H28 H27 H10.
Subgoal 1.5.1.4.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge G' G1 G8
============================
 merge G2' G1 G8

37 other subgoals.

cut_admissibility < apply perm_sym to H22.
Subgoal 1.5.1.4.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge G' G1 G8
H32 : perm G' G2'
============================
 merge G2' G1 G8

37 other subgoals.

cut_admissibility < apply perm_merge_1 to H31 H32.
Subgoal 1.5.1.4.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge G' G1 G8
H32 : perm G' G2'
H33 : merge G2' G1 G8
============================
 merge G2' G1 G8

37 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 1.5.1.4.1.2:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 merge D2 D1' D6

36 other subgoals.

cut_admissibility < apply change_merge_order to H29 H24 H9.
Subgoal 1.5.1.4.1.2:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge D2 D' D6
============================
 merge D2 D1' D6

36 other subgoals.

cut_admissibility < apply perm_sym to H16.
Subgoal 1.5.1.4.1.2:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge D2 D' D6
H32 : perm D' D1'
============================
 merge D2 D1' D6

36 other subgoals.

cut_admissibility < apply perm_merge_2 to H31 H32.
Subgoal 1.5.1.4.1.2:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
H31 : merge D2 D' D6
H32 : perm D' D1'
H33 : merge D2 D1' D6
============================
 merge D2 D1' D6

36 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 1.5.1.4.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6 G7 D5
           LL G8 D6
C <-- tensor A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A2 B2) D1
H5 : adj G2' (tensor A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (tensor A2 B2) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A2 D3
H12 : adj D2' B2 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G6 G3 G7
H24 : merge D2 D1'1 D5
H25 : prove G7 D5
H26 : adj LL B2 G7
H27 : merge G' G3 LL
H28 : merge LL G4 G8
H29 : merge D5 D2' D6
H30 : prove G8 D6
============================
 prove G8 D6

35 other subgoals.

cut_admissibility < search.
Witness: apply H30.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_swap to H22 H19.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_swap to H24 H18.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H26.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H25.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_unadj_1 to H31 H23.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_swap to H22 H17.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply add_to_merge_left to H34 H33.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

34 other subgoals.

cut_admissibility < exists D5.
Subgoal 1.5.1.4.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

34 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.4.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 merge G2' G1 M

36 other subgoals.

cut_admissibility < apply adj_same_result to H35 H5.
Subgoal 1.5.1.4.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
H38 : perm U2 G2'
============================
 merge G2' G1 M

36 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H38.
Subgoal 1.5.1.4.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
H38 : perm U2 G2'
H39 : merge G2' G1 M
============================
 merge G2' G1 M

36 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 1.5.1.4.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 merge D2 D1' D5

35 other subgoals.

cut_admissibility < search.
Witness: apply H28.
Subgoal 1.5.1.4.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           KK U U1 G7 D5 LL LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (tensor A2 B2) G2
H18 : adj G6 A2 G5
H19 : adj G' B2 G6
H20 : prove G5 D2 ***
H22 : adj KK (tensor A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (tensor A1 B1) G6
H25 : adj U A2 U1
H26 : adj U1 (tensor A1 B1) G5
H27 : merge U1 G1 G7
H28 : merge D2 D1' D5
H29 : prove G7 D5
H30 : adj LL A2 G7
H31 : merge U G1 LL
H32 : adj LL1 B2 LL
H33 : merge KK G1 LL1
H34 : adj KK (tensor A2 B2) U2
H35 : adj U2 (tensor A1 B1) G2
H36 : merge U2 G1 M
H37 : adj LL1 (tensor A2 B2) M
============================
 prove M D5

34 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 4, exists[A = A2, B = B2, G' = LL1, G1 = G7, G2 = LL] split(split(split(apply H37, apply H30), apply H32), apply H29)).
Subgoal 1.5.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_unadj_3 to H19 H5.
Subgoal 1.5.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H24 : (exists JJ, adj JJ (tensor A1 B1) G5 /\ merge JJ G6 G2') \/
        (exists KK, adj KK (tensor A1 B1) G6 /\ merge G5 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < case H24.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H22 H4 H25.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H20.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_1_is_list to H30.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_1_is_list to H21.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_exists to H32 H33.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_2_is_list to H26.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_exists to H35 H36.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_2_is_o to H17.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply merge_3_is_list to H34.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply adj_exists to H38 H39.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 exists D3, merge G2' G1 L1 /\ merge D2 D1' D3 /\ prove L1 D3

34 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

34 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.5.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge G2' G1 L1

36 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 1.5.1.5.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G1 JJ G7
============================
 merge G2' G1 L1

36 other subgoals.

cut_admissibility < apply change_merge_order to H37 H41 H26.
Subgoal 1.5.1.5.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G1 JJ G7
H42 : merge G1 G2' L1
============================
 merge G2' G1 L1

36 other subgoals.

cut_admissibility < apply merge_sym to *H42.
Subgoal 1.5.1.5.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G1 JJ G7
H43 : merge G2' G1 L1
============================
 merge G2' G1 L1

36 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 1.5.1.5.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge D2 D1' M

35 other subgoals.

cut_admissibility < apply merge_sym to *H31.
Subgoal 1.5.1.5.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge D1' D1'2 LL
============================
 merge D2 D1' M

35 other subgoals.

cut_admissibility < apply change_merge_order to H34 H41 H18.
Subgoal 1.5.1.5.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge D1' D1'2 LL
H42 : merge D1' D'1 L
============================
 merge D2 D1' M

35 other subgoals.

cut_admissibility < apply merge_sym to *H42.
Subgoal 1.5.1.5.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge D1' D1'2 LL
H43 : merge D'1 D1' L
============================
 merge D2 D1' M

35 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H43.
Subgoal 1.5.1.5.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge D1' D1'2 LL
H43 : merge D'1 D1' L
H44 : merge D2 D1' M1
H45 : adj L (tensor A2 B2) M1
============================
 merge D2 D1' M

35 other subgoals.

cut_admissibility < search.
Witness: unfold(merge, 2, exists[A = tensor A2 B2, JJ = D'1, LL = L] split(split(apply H17, apply H40), apply H43)).
Subgoal 1.5.1.5.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj JJ (tensor A1 B1) G5
H26 : merge JJ G6 G2'
H27 : merge JJ G1 G7
H28 : merge D5 D1' D7
H29 : prove G7 D7
H30 : adj LL A2 D7
H31 : merge D1'2 D1' LL
H32 : is_list LL
H33 : is_list D2'1
H34 : merge LL D2'1 L
H35 : is_list G7
H36 : is_list G6
H37 : merge G7 G6 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 prove L1 M

34 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 5, exists[A = A2, B = B2, D' = L, D1 = D7, D2 = D6, D1' = LL, D2' = D2'1, G1 = G7, G2 = G6] split(split(split(split(split(split(apply H40, apply H34), apply H37), apply H30), apply H21), apply H29), apply H23)).
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H23 H4 H25.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H21.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_1_is_list to H30.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_1_is_list to H20.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_exists to H33 H32.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_1_is_list to H26.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_exists to H36 H35.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_2_is_o to H17.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply merge_3_is_list to H34.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_exists to H38 H39.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 exists D3, merge G2' G1 L1 /\ merge D2 D1' D3 /\ prove L1 D3

33 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

33 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < apply merge_sym to *H37.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G7 G5 L1
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G7 G5 L1
H42 : merge G1 KK G7
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < apply merge_sym to *H26.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G7 G5 L1
H42 : merge G1 KK G7
H43 : merge KK G5 G2'
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < apply change_merge_order to H41 H42 H43.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G7 G5 L1
H42 : merge G1 KK G7
H43 : merge KK G5 G2'
H44 : merge G1 G2' L1
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 1.5.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge G7 G5 L1
H42 : merge G1 KK G7
H43 : merge KK G5 G2'
H45 : merge G2' G1 L1
============================
 merge G2' G1 L1

35 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply merge_sym to *H34.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply merge_sym to *H18.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
H42 : merge D2'1 D1'2 D'1
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply merge_sym to *H31.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
H42 : merge D2'1 D1'2 D'1
H43 : merge D1' D2'1 LL
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply change_merge_order to H41 H43 H42.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
H42 : merge D2'1 D1'2 D'1
H43 : merge D1' D2'1 LL
H44 : merge D1' D'1 L
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
H42 : merge D2'1 D1'2 D'1
H43 : merge D1' D2'1 LL
H45 : merge D'1 D1' L
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H45.
Subgoal 1.5.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H32 : is_list LL
H33 : is_list D1'2
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
H41 : merge LL D1'2 L
H42 : merge D2'1 D1'2 D'1
H43 : merge D1' D2'1 LL
H45 : merge D'1 D1' L
H46 : merge D2 D1' M1
H47 : adj L (tensor A2 B2) M1
============================
 merge D2 D1' M

34 other subgoals.

cut_admissibility < search.
Witness: unfold(merge, 2, exists[A = tensor A2 B2, JJ = D'1, LL = L] split(split(apply H17, apply H40), apply H45)).
Subgoal 1.5.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           D1'2 D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (tensor A2 B2) D2
H18 : merge D1'2 D2'1 D'1
H19 : merge G5 G6 G2
H20 : adj D1'2 A2 D5
H21 : adj D2'1 B2 D6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G6
H26 : merge G5 KK G2'
H27 : merge KK G1 G7
H28 : merge D6 D1' D7
H29 : prove G7 D7
H30 : adj LL B2 D7
H31 : merge D2'1 D1' LL
H32 : is_list LL
H33 : is_list D1'2
H34 : merge D1'2 LL L
H35 : is_list G7
H36 : is_list G5
H37 : merge G5 G7 L1
H38 : formula (tensor A2 B2)
H39 : is_list L
H40 : adj L (tensor A2 B2) M
============================
 prove L1 M

33 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 5, exists[A = A2, B = B2, D' = L, D1 = D5, D2 = D7, D1' = D1'2, D2' = LL, G1 = G5, G2 = G7] split(split(split(split(split(split(apply H40, apply H34), apply H37), apply H20), apply H30), apply H22), apply H29)).
Subgoal 1.5.1.6:

Variables: G1 D1 D1' G2 G2' A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A1 B1
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H17.
Subgoal 1.5.1.6:

Variables: G1 D1 D1' G2' A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- tensor A1 B1
G2 <-- bot :: nil
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) (bot :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H18 : formula bot
H19 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H5.
Subgoal 1.5.1.6:

Variables: G1 D1 D1' A1 B1 D' D3 D4 D1'1 D2' G3 G4 K
C <-- tensor A1 B1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (tensor A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H18 : formula bot
H19 : is_list nil
H20 : formula bot
H21 : adj K (tensor A1 B1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H21.
Subgoal 1.5.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 bot D2
H18 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H5.
Subgoal 1.5.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 G5 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 bot D2
H18 : prove G2 D'1 ***
H19 : merge G2' G1 G5
H20 : merge D'1 D1' D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H20.
Subgoal 1.5.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 G5 D5 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 bot D2
H18 : prove G2 D'1 ***
H19 : merge G2' G1 G5
H20 : merge D'1 D1' D5
H21 : prove G5 D5
H22 : merge D2 D1' M
H23 : adj D5 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H19, apply H22), unfold(prove, 7, exists[D' = D5] split(apply H23, apply H21))).
Subgoal 1.5.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (par A2 B2) D2
H18 : adj D6 A2 D5
H19 : adj D'1 B2 D6
H20 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H5.
Subgoal 1.5.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           G5 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (par A2 B2) D2
H18 : adj D6 A2 D5
H19 : adj D'1 B2 D6
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D7
H23 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H18.
Subgoal 1.5.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           G5 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (par A2 B2) D2
H18 : adj D6 A2 D5
H19 : adj D'1 B2 D6
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D7
H23 : prove G5 D7
H24 : adj LL A2 D7
H25 : merge D6 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H19.
Subgoal 1.5.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           G5 D7 LL LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (par A2 B2) D2
H18 : adj D6 A2 D5
H19 : adj D'1 B2 D6
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D7
H23 : prove G5 D7
H24 : adj LL A2 D7
H25 : merge D6 D1' LL
H26 : adj LL1 B2 LL
H27 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H27.
Subgoal 1.5.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 D6
           G5 D7 LL LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (par A2 B2) D2
H18 : adj D6 A2 D5
H19 : adj D'1 B2 D6
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D7
H23 : prove G5 D7
H24 : adj LL A2 D7
H25 : merge D6 D1' LL
H26 : adj LL1 B2 LL
H27 : merge D'1 D1' LL1
H28 : merge D2 D1' M
H29 : adj LL1 (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H21, apply H28), unfold(prove, 8, exists[A = A2, B = B2, D' = LL1, D1 = D7, D2 = LL] split(split(split(apply H29, apply H24), apply H26), apply H23))).
Subgoal 1.5.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H24 : tensor A1 B1 = par A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (tensor A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H24.
Subgoal 1.5.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_unadj_3 to H18 H25.
Subgoal 1.5.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H26 : (exists JJ, adj JJ (tensor A1 B1) G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 (tensor A1 B1) G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H26.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_swap to H27 H20.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H22 H4 H30.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H31 H29.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_3_is_list to H35.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H36 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_2_is_list to H18.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H36 : is_list LL
H37 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_exists to *H36 *H37.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_3_is_list to H32.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H39 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_2_is_list to H19.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H39 : is_list D7
H40 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_exists to *H39 *H40.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_2_is_o to H17.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_3_is_list to H38.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_exists to H42 H43.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

30 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

30 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply change_merge_order to H38 H45 H28.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H46 : merge G1 KK L
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply merge_sym to *H46.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply adj_swap to H25 H17.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply add_to_merge_left to H48 H47.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply adj_same_result to H5 H49.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply perm_sym to *H52.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H53 : perm U1 G2'
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply perm_merge_1 to H50 H53.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H53 : perm U1 G2'
H54 : merge G2' G1 M1
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply adj_same_source to H44 H51.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H53 : perm U1 G2'
H54 : merge G2' G1 M1
H55 : perm M M1
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply perm_sym to *H55.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H53 : perm U1 G2'
H54 : merge G2' G1 M1
H56 : perm M1 M
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < apply perm_merge_3 to H54 H56.
Subgoal 1.5.1.9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 JJ LL
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge U1 G1 M1
H51 : adj L (par A2 B2) M1
H53 : perm U1 G2'
H54 : merge G2' G1 M1
H56 : perm M1 M
H57 : merge G2' G1 M
============================
 merge G2' G1 M

32 other subgoals.

cut_admissibility < search.
Witness: apply H57.
Subgoal 1.5.1.9.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge D2 D1' L1

31 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 1.5.1.9.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge D1' D5 D7
============================
 merge D2 D1' L1

31 other subgoals.

cut_admissibility < apply change_merge_order to *H41 *H45 *H19.
Subgoal 1.5.1.9.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H46 : merge D1' D2 L1
============================
 merge D2 D1' L1

31 other subgoals.

cut_admissibility < apply merge_sym to *H46.
Subgoal 1.5.1.9.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H47 : merge D2 D1' L1
============================
 merge D2 D1' L1

31 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 1.5.1.9.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK JJ U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj JJ (tensor A1 B1) G1'
H28 : merge JJ G2'1 KK
H29 : adj JJ A2 U
H30 : adj U (tensor A1 B1) G5
H31 : merge U G1 G7
H32 : merge D5 D1' D7
H33 : prove G7 D7
H34 : adj LL A2 G7
H35 : merge JJ G1 LL
H38 : merge LL G2'1 L
H41 : merge D7 D6 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 prove M L1

30 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G7, G2 = G6, G1' = LL, G2' = G2'1, D1 = D7, D2 = D6] split(split(split(split(split(split(apply H44, apply H38), apply H41), apply H34), apply H21), apply H33), apply H23)).
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_swap to H27 H21.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H23 H4 H30.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_unadj_1 to H31 H29.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_3_is_list to H35.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H36 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_1_is_list to H18.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H36 : is_list LL
H37 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_exists to *H36 *H37.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_3_is_list to H32.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H39 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_1_is_list to H19.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H39 : is_list D7
H40 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_exists to *H39 *H40.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_2_is_o to H17.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_3_is_list to H38.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_exists to H42 H43.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

29 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

29 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply change_merge_order to H38 H45 H46.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply adj_swap to H25 H17.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply add_to_merge_right to H48 H47.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply adj_same_result to H5 H49.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply perm_sym to H52.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply perm_merge_2 to H50 H53.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
H54 : merge G1 G2' M1
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply merge_sym to H54.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
H54 : merge G1 G2' M1
H55 : merge G2' G1 M1
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply adj_same_source to H44 H51.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
H54 : merge G1 G2' M1
H55 : merge G2' G1 M1
H56 : perm M M1
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply perm_sym to H56.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
H54 : merge G1 G2' M1
H55 : merge G2' G1 M1
H56 : perm M M1
H57 : perm M1 M
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < apply perm_merge_3 to H55 H57.
Subgoal 1.5.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M U1 M1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1 KK1 LL
H46 : merge KK1 G1' KK
H47 : merge G1 KK L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (tensor A1 B1) G2
H50 : merge G1 U1 M1
H51 : adj L (par A2 B2) M1
H52 : perm G2' U1
H53 : perm U1 G2'
H54 : merge G1 G2' M1
H55 : merge G2' G1 M1
H56 : perm M M1
H57 : perm M1 M
H58 : merge G2' G1 M
============================
 merge G2' G1 M

31 other subgoals.

cut_admissibility < search.
Witness: apply H58.
Subgoal 1.5.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 merge D2 D1' L1

30 other subgoals.

cut_admissibility < apply merge_sym to H32.
Subgoal 1.5.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge D1' D6 D7
============================
 merge D2 D1' L1

30 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 1.5.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge D1' D6 D7
H46 : merge D6 D5 D2
============================
 merge D2 D1' L1

30 other subgoals.

cut_admissibility < apply change_merge_order to H41 H45 H46.
Subgoal 1.5.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge D1' D6 D7
H46 : merge D6 D5 D2
H47 : merge D1' D2 L1
============================
 merge D2 D1' L1

30 other subgoals.

cut_admissibility < apply merge_sym to H47.
Subgoal 1.5.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge D1' D6 D7
H46 : merge D6 D5 D2
H47 : merge D1' D2 L1
H48 : merge D2 D1' L1
============================
 merge D2 D1' L1

30 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 1.5.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H38 : merge LL G1' L
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
============================
 prove M L1

29 other subgoals.

cut_admissibility < apply merge_sym to *H38.
Subgoal 1.5.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H41 : merge D7 D5 L1
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1' LL L
============================
 prove M L1

29 other subgoals.

cut_admissibility < apply merge_sym to *H41.
Subgoal 1.5.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 G6
           G1' G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (par A2 B2) G2
H18 : merge G1' G2'1 G'
H19 : merge D5 D6 D2
H20 : adj G1' A2 G5
H21 : adj G2'1 B2 G6
H22 : prove G5 D5 ***
H23 : prove G6 D6 ***
H25 : adj KK (tensor A1 B1) G'
H27 : adj KK1 (tensor A1 B1) G2'1
H28 : merge G1' KK1 KK
H29 : adj KK1 B2 U
H30 : adj U (tensor A1 B1) G6
H31 : merge U G1 G7
H32 : merge D6 D1' D7
H33 : prove G7 D7
H34 : adj LL B2 G7
H35 : merge KK1 G1 LL
H42 : formula (par A2 B2)
H43 : is_list L
H44 : adj L (par A2 B2) M
H45 : merge G1' LL L
H46 : merge D5 D7 L1
============================
 prove M L1

29 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G5, G2 = G7, G1' = G1', G2' = LL, D1 = D5, D2 = D7] split(split(split(split(split(split(apply H44, apply H45), apply H46), apply H20), apply H34), apply H22), apply H33)).
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G'
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_same_result_diff to H17 H5.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G'
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H19 : zero = tensor A1 B1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H19.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to H18 H21.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
H23 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
H23 : is_list G2'
H24 : is_list G1
H25 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to H23 H24.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
H23 : is_list G2'
H24 : is_list G1
H25 : is_list D1
H26 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H26 H20.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L L1 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
H23 : is_list G2'
H24 : is_list G1
H25 : is_list D1
H26 : merge G2' G1 L1
H27 : adj LL zero L1
H28 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 1.5.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 G' KK L L1 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' zero G2
H18 : is_list D2
H20 : adj KK zero G2'
H21 : is_list D1'
H22 : merge D2 D1' L
H23 : is_list G2'
H24 : is_list G1
H25 : is_list D1
H26 : merge G2' G1 L1
H27 : adj LL zero L1
H28 : merge KK G1 LL
H29 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = L] split(split(apply H26, apply H22), unfold(prove, 10, exists[G' = LL] split(apply H27, apply H29))).
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to H19 H20.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
H23 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_3_is_list to H17.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
H23 : is_list D1'
H24 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to H24 H23.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L L1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
H23 : is_list D1'
H24 : is_list D2
H25 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H17.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L L1 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
H23 : is_list D1'
H24 : is_list D2
H25 : merge D2 D1' L1
H26 : adj LL top L1
H27 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 1.5.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 D'1 L L1 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 top D2
H18 : is_list G2
H19 : is_list G2'
H20 : is_list G1
H21 : is_list D1
H22 : merge G2' G1 L
H23 : is_list D1'
H24 : is_list D2
H25 : merge D2 D1' L1
H26 : adj LL top L1
H27 : merge D'1 D1' LL
H28 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H22, apply H25), unfold(prove, 11, exists[D' = LL] split(apply H26, apply H28))).
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H20 : tensor A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (tensor A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H20.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H21 H18.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H23.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H21 H17.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply add_to_merge_left to H29 H28.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result to H5 H30.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H33 : perm G2' U1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply perm_sym to *H33.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H34 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply perm_merge_1 to H31 H34.
Subgoal 1.5.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' A2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK A2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL A2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H34 : perm U1 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H35, apply H25), unfold(prove, 12, exists[A = A2, B = B2, G' = LL, G1 = G6] split(split(apply H32, apply H27), apply H26))).
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H20 : tensor A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (tensor A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H20.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_swap to H21 H18.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H23.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_swap to H21 H17.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply add_to_merge_left to H29 H28.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_same_result to H5 H30.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H33 : perm G2' U1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply perm_sym to *H33.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H34 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply perm_merge_1 to H31 H34.
Subgoal 1.5.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G5 KK U
           G6 D5 LL U1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (with A2 B2) G2
H18 : adj G' B2 G5
H19 : prove G5 D2 ***
H21 : adj KK (tensor A1 B1) G'
H22 : adj KK B2 U
H23 : adj U (tensor A1 B1) G5
H24 : merge U G1 G6
H25 : merge D2 D1' D5
H26 : prove G6 D5
H27 : adj LL B2 G6
H28 : merge KK G1 LL
H29 : adj KK (with A2 B2) U1
H30 : adj U1 (tensor A1 B1) G2
H31 : merge U1 G1 M
H32 : adj LL (with A2 B2) M
H34 : perm U1 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H35, apply H25), unfold(prove, 13, exists[A = A2, B = B2, G' = LL, G1 = G6] split(split(apply H32, apply H27), apply H26))).
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D2'1
           D5 D6 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (with A2 B2) D2
H18 : adj D'1 A2 D5
H19 : adj D2'1 B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D2'1 D'1
H23 : perm G5 G2
H24 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < rename D'1 to D5'.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D2'1
           D5 D6 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D2'1 B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D2'1 D5'
H23 : perm G5 G2
H24 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < rename D2'1 to D6'.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H23 : perm G5 G2
H24 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H23.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H24 : perm G6 G2
H25 : perm G2 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H5.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H24 : perm G6 G2
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H26.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H24 : perm G6 G2
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H29 H18.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H24 : perm G6 G2
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_perm_result to H33 H5.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H35 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H34.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H35 : perm G2' KK1
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H37 H19.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H27 : perm G2' KK
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H35 : perm G2' KK1
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H27.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H35 : perm G2' KK1
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H28 H41.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H35 : perm G2' KK1
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H35.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H43.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_perm_det to H44 H42.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_2_is_list to H45.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H46 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_refl to *H46.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H40 H22.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_perm_det to H48 H32.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_2_is_list to H49.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H32.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < exists G8.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 exists D3, merge G2' G1 G8 /\ merge D2 D1' D3 /\ prove G8 D3

24 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 merge G2' G1 G8 /\ merge D2 D1' M /\ prove G8 M

24 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 merge G2' G1 G8

26 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 1.5.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 merge D2 D1' M

25 other subgoals.

cut_admissibility < search.
Witness: apply H51.
Subgoal 1.5.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 prove G8 M

24 other subgoals.

cut_admissibility < unfold 14.
Subgoal 1.5.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G8 /\
   perm G2 G8

24 other subgoals.

cut_admissibility < exists A2, B2, LL, LL1, D7, D8, G7, G8.
Subgoal 1.5.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M /\ adj LL A2 D7 /\ adj LL1 B2 D8 /\ prove G7 D7 /\
   prove G8 D8 /\ perm LL1 LL /\ perm G7 G8 /\ perm G8 G8

24 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.14.3.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M

31 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 1.5.1.14.3.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 adj LL A2 D7

30 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 1.5.1.14.3.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 adj LL1 B2 D8

29 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 1.5.1.14.3.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 prove G7 D7

28 other subgoals.

cut_admissibility < search.
Witness: apply H30.
Subgoal 1.5.1.14.3.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 prove G8 D8

27 other subgoals.

cut_admissibility < search.
Witness: apply H38.
Subgoal 1.5.1.14.3.6:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 perm LL1 LL

26 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 1.5.1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 perm G7 G8

25 other subgoals.

cut_admissibility < apply perm_sym to H45.
Subgoal 1.5.1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
H53 : perm G7 G8
============================
 perm G7 G8

25 other subgoals.

cut_admissibility < search.
Witness: apply H53.
Subgoal 1.5.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
============================
 perm G8 G8

24 other subgoals.

cut_admissibility < apply perm_1_is_list to H45.
Subgoal 1.5.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
H53 : is_list G8
============================
 perm G8 G8

24 other subgoals.

cut_admissibility < apply perm_refl to H53.
Subgoal 1.5.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D5' D6' D5
           D6 G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D5' (with A2 B2) D2
H18 : adj D5' A2 D5
H19 : adj D6' B2 D6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm D6' D5'
H25 : perm G2 G5
H26 : adj KK (tensor A1 B1) G5
H28 : merge KK G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D5' D1' LL
H33 : perm G2 G6
H34 : adj KK1 (tensor A1 B1) G6
H36 : merge KK1 G1 G8
H37 : merge D6 D1' D8
H38 : prove G8 D8
H39 : adj LL1 B2 D8
H40 : merge D6' D1' LL1
H41 : perm KK G2'
H42 : merge G2' G1 G7
H43 : perm KK1 G2'
H44 : merge G2' G1 G8
H45 : perm G8 G7
H47 : perm G7 G7
H48 : merge D5' D1' LL1
H49 : perm LL1 LL
H50 : is_list LL
H51 : merge D2 D1' M
H52 : adj LL (with A2 B2) M
H53 : is_list G8
H54 : perm G8 G8
============================
 perm G8 G8

24 other subgoals.

cut_admissibility < search.
Witness: apply H54.
Subgoal 1.5.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 A2 D5
H19 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H5.
Subgoal 1.5.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 A2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H18.
Subgoal 1.5.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 A2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
H23 : adj LL A2 D6
H24 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H24.
Subgoal 1.5.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6 LL M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 A2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
H23 : adj LL A2 D6
H24 : merge D'1 D1' LL
H25 : merge D2 D1' M
H26 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H20, apply H25), unfold(prove, 15, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H26, apply H23), apply H22))).
Subgoal 1.5.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 B2 D5
H19 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H5.
Subgoal 1.5.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 B2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H18.
Subgoal 1.5.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 B2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
H23 : adj LL B2 D6
H24 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H24.
Subgoal 1.5.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 D'1 D5 G5
           D6 LL M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj D'1 (plus A2 B2) D2
H18 : adj D'1 B2 D5
H19 : prove G2 D5 ***
H20 : merge G2' G1 G5
H21 : merge D5 D1' D6
H22 : prove G5 D6
H23 : adj LL B2 D6
H24 : merge D'1 D1' LL
H25 : merge D2 D1' M
H26 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H20, apply H25), unfold(prove, 16, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H26, apply H23), apply H22))).
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G' G2'1 G5
           G6 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G' (plus A2 B2) G2
H18 : adj G' A2 G5
H19 : adj G2'1 B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G2'1 G'
H23 : perm D5 D2
H24 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename G' to G5'.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G2'1
           G5 G6 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G2'1 B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G2'1 G5'
H23 : perm D5 D2
H24 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename G2'1 to G6'.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H17.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
H25 : tensor A1 B1 = plus A2 B2 /\ perm G2' G5' \/
        (exists KK, adj KK (tensor A1 B1) G5')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H25.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H26 H18.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H28.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H29 H27.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H22 : perm G6' G5'
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_perm_result to H34 H26.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H35 H19.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H38.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H39 H37.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H36.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_perm_det to H43 H44.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H26 H17.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H46 H33.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result to H47 H5.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H48 H50.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H30 H23.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H40 H24.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_perm_det to H53 H52.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_2_is_list to H54.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H55 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_refl to *H55.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

21 other subgoals.

cut_admissibility < exists D8.
Subgoal 1.5.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 merge G2' G1 M /\ merge D2 D1' D8 /\ prove M D8

21 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 merge G2' G1 M

23 other subgoals.

cut_admissibility < search.
Witness: apply H51.
Subgoal 1.5.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 merge D2 D1' D8

22 other subgoals.

cut_admissibility < search.
Witness: apply H53.
Subgoal 1.5.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 prove M D8

21 other subgoals.

cut_admissibility < unfold 17.
Subgoal 1.5.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D8 /\
   perm D2 D8

21 other subgoals.

cut_admissibility < exists A2, B2, LL, LL1, G7, G8, D7, D8.
Subgoal 1.5.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 adj LL (plus A2 B2) M /\ adj LL A2 G7 /\ adj LL1 B2 G8 /\ prove G7 D7 /\
   prove G8 D8 /\ perm LL1 LL /\ perm D7 D8 /\ perm D8 D8

21 other subgoals.

cut_admissibility < split.
Subgoal 1.5.1.17.3.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 adj LL (plus A2 B2) M

28 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 1.5.1.17.3.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 adj LL A2 G7

27 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 1.5.1.17.3.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 adj LL1 B2 G8

26 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 1.5.1.17.3.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 prove G7 D7

25 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 1.5.1.17.3.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 prove G8 D8

24 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 1.5.1.17.3.6:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 perm LL1 LL

23 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 1.5.1.17.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 perm D7 D8

22 other subgoals.

cut_admissibility < apply perm_sym to H54.
Subgoal 1.5.1.17.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
H57 : perm D7 D8
============================
 perm D7 D8

22 other subgoals.

cut_admissibility < search.
Witness: apply H57.
Subgoal 1.5.1.17.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
============================
 perm D8 D8

21 other subgoals.

cut_admissibility < apply perm_1_is_list to H54.
Subgoal 1.5.1.17.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
H57 : is_list D8
============================
 perm D8 D8

21 other subgoals.

cut_admissibility < apply perm_refl to *H57.
Subgoal 1.5.1.17.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D1'1 D2' G3 G4 A2 B2 G5' G6' G5
           G6 D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- tensor A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A1 B1) D1
H5 : adj G2' (tensor A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : perm D1' D'
H17 : adj G5' (plus A2 B2) G2
H18 : adj G5' A2 G5
H19 : adj G6' B2 G6
H20 : prove G5 D5 ***
H21 : prove G6 D6 ***
H23 : perm D5 D2
H24 : perm D6 D2
H26 : adj KK (tensor A1 B1) G5'
H27 : adj KK A2 U
H28 : adj U (tensor A1 B1) G5
H29 : merge U G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 G7
H33 : merge KK G1 LL
H34 : perm G5' G6'
H35 : adj KK1 (tensor A1 B1) G6'
H36 : perm KK KK1
H37 : adj KK1 B2 U1
H38 : adj U1 (tensor A1 B1) G6
H39 : merge U1 G1 G8
H40 : merge D6 D1' D8
H41 : prove G8 D8
H42 : adj LL1 B2 G8
H43 : merge KK1 G1 LL1
H44 : merge KK1 G1 LL
H45 : perm LL1 LL
H46 : adj KK (plus A2 B2) U2
H47 : adj U2 (tensor A1 B1) G2
H48 : merge U2 G1 M
H49 : adj LL (plus A2 B2) M
H50 : perm U2 G2'
H51 : merge G2' G1 M
H52 : merge D2 D1' D7
H53 : merge D2 D1' D8
H54 : perm D8 D7
H56 : perm D7 D7
H58 : perm D8 D8
============================
 perm D8 D8

21 other subgoals.

cut_admissibility < search.
Witness: apply H58.
Subgoal 1.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_3 to H9 H16.
Subgoal 1.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H17 : (exists JJ, adj JJ (tensor A B) D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 (tensor A B) D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H17.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H18 H11.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H21 H5.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_2_is_list to H9.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to H27 H28.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H29.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_2_is_o to H8.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_exists to H31 H30.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to H34 H33.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 exists D3, merge G2' G1 L1 /\ merge D2 D1' D3 /\ prove L1 D3

21 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

21 other subgoals.

cut_admissibility < split.
Subgoal 1.5.2.1.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 merge G2' G1 L1

23 other subgoals.

cut_admissibility < apply change_merge_order to H35 H22 H10.
Subgoal 1.5.2.1.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge G2' G1 L1
============================
 merge G2' G1 L1

23 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply change_merge_order to H29 H26 H19.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply adj_implies_merge to H4.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply adj_implies_merge to H8.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
H38 : merge D' (tensor A1 B1 :: nil) D1
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply adj_implies_merge to H16.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
H38 : merge D' (tensor A1 B1 :: nil) D1
H39 : merge KK (tensor A B :: nil) D'
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply merge_sub to H39 H38 H37.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
H38 : merge D' (tensor A1 B1 :: nil) D1
H39 : merge KK (tensor A B :: nil) D'
H40 : merge KK (tensor A1 B1 :: nil) D1'
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply adj_implies_merge to H32.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
H38 : merge D' (tensor A1 B1 :: nil) D1
H39 : merge KK (tensor A B :: nil) D'
H40 : merge KK (tensor A1 B1 :: nil) D1'
H41 : merge L (tensor A1 B1 :: nil) M
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < apply change_merge_order to H41 H36 H40.
Subgoal 1.5.2.1.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
H36 : merge D2 KK L
H37 : merge D1' (tensor A B :: nil) D1
H38 : merge D' (tensor A1 B1 :: nil) D1
H39 : merge KK (tensor A B :: nil) D'
H40 : merge KK (tensor A1 B1 :: nil) D1'
H41 : merge L (tensor A1 B1 :: nil) M
H42 : merge D2 D1' M
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 1.5.2.1.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 prove L1 M

21 other subgoals.

cut_admissibility < unfold 5.
Subgoal 1.5.2.1.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj JJ (tensor A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (tensor A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list LL
H28 : is_list D2'
H29 : merge LL D2' L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G4
H34 : is_list G5
H35 : merge G5 G4 L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

21 other subgoals.

cut_admissibility < search.
Witness: exists[A = A1, B = B1, D' = L, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H32, apply H29), apply H35), apply H25), apply H12), apply H24), apply H14).
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_swap to H18 H12.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H21 H5.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to H28 H27.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H29.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_2_is_o to H8.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_exists to H31 H30.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to H34 H33.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 exists D3, merge G2' G1 L1 /\ merge D2 D1' D3 /\ prove L1 D3

20 other subgoals.

cut_admissibility < exists M.
Subgoal 1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

20 other subgoals.

cut_admissibility < split.
Subgoal 1.5.2.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 merge G2' G1 L1

22 other subgoals.

cut_admissibility < apply merge_sym to H10.
Subgoal 1.5.2.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge G4 G3 G1
============================
 merge G2' G1 L1

22 other subgoals.

cut_admissibility < apply change_merge_order to H35 H22 H36.
Subgoal 1.5.2.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge G4 G3 G1
H37 : merge G2' G1 L1
============================
 merge G2' G1 L1

22 other subgoals.

cut_admissibility < search.
Witness: apply H37.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply merge_sym to H29.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply change_merge_order to H36 H26 H37.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply adj_implies_merge to H4.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply adj_implies_merge to H8.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
H40 : merge D' (tensor A1 B1 :: nil) D1
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply adj_implies_merge to H16.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
H40 : merge D' (tensor A1 B1 :: nil) D1
H41 : merge KK (tensor A B :: nil) D'
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply merge_sub to H41 H40 H39.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
H40 : merge D' (tensor A1 B1 :: nil) D1
H41 : merge KK (tensor A B :: nil) D'
H42 : merge KK (tensor A1 B1 :: nil) D1'
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply adj_implies_merge to H32.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
H40 : merge D' (tensor A1 B1 :: nil) D1
H41 : merge KK (tensor A B :: nil) D'
H42 : merge KK (tensor A1 B1 :: nil) D1'
H43 : merge L (tensor A1 B1 :: nil) M
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < apply change_merge_order to H43 H38 H42.
Subgoal 1.5.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge LL D1'1 L
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L
H39 : merge D1' (tensor A B :: nil) D1
H40 : merge D' (tensor A1 B1 :: nil) D1
H41 : merge KK (tensor A B :: nil) D'
H42 : merge KK (tensor A1 B1 :: nil) D1'
H43 : merge L (tensor A1 B1 :: nil) M
H44 : merge D2 D1' M
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 1.5.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
============================
 prove L1 M

20 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 1.5.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge G3 G5 L1
============================
 prove L1 M

20 other subgoals.

cut_admissibility < unfold 5.
Subgoal 1.5.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L M L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D'
H18 : adj KK1 (tensor A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (tensor A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list LL
H28 : is_list D1'1
H29 : merge D1'1 LL L
H30 : is_list L
H31 : formula (tensor A1 B1)
H32 : adj L (tensor A1 B1) M
H33 : is_list G3
H34 : is_list G5
H35 : merge G5 G3 L1
H36 : merge G3 G5 L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

20 other subgoals.

cut_admissibility < search.
Witness: exists[A = A1, B = B1, D' = L, D1 = D3, D2 = D5, D1' = D1'1, D2' = LL, G1 = G3, G2 = G5] split(split(split(split(split(split(apply H32, apply H29), apply H36), apply H11), apply H25), apply H13), apply H24).
Subgoal 1.6:

Variables: G1 D1' G2 G2' D2 B A
C <-- tensor A B
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) nil
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H4.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H10 : tensor A B = bot /\ perm D1' D' \/ (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H10.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H11 H5.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H4 H16.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H15 H13.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists G3.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 exists D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists M.
Subgoal 1.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 merge G2' G1 G3 /\ merge D2 D1' M /\ prove G3 M

18 other subgoals.

cut_admissibility < split.
Subgoal 1.7.1:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 merge G2' G1 G3

20 other subgoals.

cut_admissibility < search.
Witness: apply H12.
Subgoal 1.7.2:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 merge D2 D1' M

19 other subgoals.

cut_admissibility < apply perm_sym to H17.
Subgoal 1.7.2:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
H20 : perm U D1'
============================
 merge D2 D1' M

19 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H20.
Subgoal 1.7.2:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
H20 : perm U D1'
H21 : merge D2 D1' M
============================
 merge D2 D1' M

19 other subgoals.

cut_admissibility < search.
Witness: apply H21.
Subgoal 1.7.3:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (tensor A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (tensor A B) D1
H17 : perm D1' U
H18 : merge D2 U M
H19 : adj D3 bot M
============================
 prove G3 M

18 other subgoals.

cut_admissibility < search.
Witness: unfold(prove, 7, exists[D' = D3] split(apply H19, apply H14)).
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H12 : tensor A B = par A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H12.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H15 H9.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H22 H14.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H13 H8.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (tensor A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H25 H24.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (tensor A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H4 H26.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (tensor A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm D1' U2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_sym to *H29.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (tensor A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H30 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_2 to H27 H30.
Subgoal 1.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (tensor A B) D'
H14 : adj KK B1 U
H15 : adj U (tensor A B) D4
H16 : adj U A1 U1
H17 : adj U1 (tensor A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (tensor A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H30 : perm U2 D1'
H31 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H18, apply H31), unfold(prove, 8, exists[A = A1, B = B1, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H28, apply H21), apply H23), apply H20))).
Subgoal 1.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_3 to H10 H4.
Subgoal 1.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : (exists JJ, adj JJ (tensor A B) D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK (tensor A B) D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H15.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H16 H5.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H11.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H21.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H12.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H23 H24.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_2_is_list to H17.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
H27 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H26 H27.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
H27 : is_list D4
H28 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H9.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
H27 : is_list D4
H28 : merge D5 D4 L1
H29 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H29.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
H27 : is_list D4
H28 : merge D5 D4 L1
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H28 H19 H17.
Subgoal 1.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (tensor A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
H25 : merge LL G2'1 L
H26 : is_list D5
H27 : is_list D4
H28 : merge D5 D4 L1
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A1 B1) M
H32 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H30, apply H32), unfold(prove, 9, exists[A = A1, B = B1, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H31, apply H25), apply H28), apply H21), apply H12), apply H20), apply H14))).
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H16 H5.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H12.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H21.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H11.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to H23 H24.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to H26 H27.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H9.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H29.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H30.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H17.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H28 H19 H33.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H25 : merge LL G1' L
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H28 : merge D5 D3 L1
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < exists M.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

16 other subgoals.

cut_admissibility < exists L1.
Subgoal 1.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

16 other subgoals.

cut_admissibility < split.
Subgoal 1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 merge G2' G1 M

18 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 merge D2 D1' L1

17 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 prove M L1

16 other subgoals.

cut_admissibility < unfold 9.
Subgoal 1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

16 other subgoals.

cut_admissibility < exists A1, B1, L, G3, G5, G1', LL, D3, D5.
Subgoal 1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 adj L (par A1 B1) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A1 G3 /\
   adj LL B1 G5 /\ prove G3 D3 /\ prove G5 D5

16 other subgoals.

cut_admissibility < split.
Subgoal 1.9.2.3.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 adj L (par A1 B1) M

22 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 1.9.2.3.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 merge G1' LL L

21 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 1.9.2.3.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 merge D3 D5 L1

20 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 1.9.2.3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 adj G1' A1 G3

19 other subgoals.

cut_admissibility < search.
Witness: apply H11.
Subgoal 1.9.2.3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 adj LL B1 G5

18 other subgoals.

cut_admissibility < search.
Witness: apply H21.
Subgoal 1.9.2.3.6:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: apply H13.
Subgoal 1.9.2.3.7:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L L1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (tensor A B) D4
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
H26 : is_list D5
H27 : is_list D3
H29 : merge G2'1 G1' G'
H30 : merge G2' G' L
H31 : merge G2' G1 M
H32 : adj L (par A1 B1) M
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
H35 : merge G1' LL L
H36 : merge D3 D5 L1
============================
 prove G5 D5

16 other subgoals.

cut_admissibility < search.
Witness: apply H20.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_3_is_list to H8.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to H11 H10.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to H14 H15.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
H16 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H8.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
H16 : merge D2 D1' L1
H17 : adj LL zero L
H18 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H16.
Subgoal 1.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G1
H11 : is_list G2'
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
H16 : merge D2 D1' L1
H17 : adj LL zero L
H18 : merge G2' G' LL
H19 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H12, apply H16), unfold(prove, 10, exists[G' = LL] split(apply H17, apply H19))).
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H8 H4.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H10 : top = tensor A B /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H10.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H12 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H12 : is_list D1'
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H12.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H13 : is_list G2
H15 : merge D2 D1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK L
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H13 : is_list G2
H15 : merge D2 D1' L
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to H16 H9.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK L L1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H13 : is_list G2
H15 : merge D2 D1' L
H16 : is_list G2'
H17 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H11.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK L L1 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H13 : is_list G2
H15 : merge D2 D1' L
H16 : is_list G2'
H17 : merge G2' G1 L1
H18 : adj LL top L
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 1.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK L L1 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H11 : adj KK top D1'
H13 : is_list G2
H15 : merge D2 D1' L
H16 : is_list G2'
H17 : merge G2' G1 L1
H18 : adj LL top L
H19 : merge D2 KK LL
H20 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = L] split(split(apply H17, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H18, apply H20))).
Subgoal 1.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to *H1 *H10 *H3 *H4 *H5.
Subgoal 1.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 1.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 1.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 12, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 1.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to *H1 *H10 *H3 *H4 *H5.
Subgoal 1.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 1.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 1.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H2 : prove G1 D1 @@
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 13, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H16 : tensor A B = with A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H16.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to *H13.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H17.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H26 H10.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H29 H5.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H31 H28.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H14.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H30 H15.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H35.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_2_is_list to H37.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H38 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_refl to *H38.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H27.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H40.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H17 H8.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H42 H24.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result to H43 H4.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H44 H46.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < exists G6.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists D3, merge G2' G1 G6 /\ merge D2 D1' D3 /\ prove G6 D3

11 other subgoals.

cut_admissibility < exists M.
Subgoal 1.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G6 /\ merge D2 D1' M /\ prove G6 M

11 other subgoals.

cut_admissibility < split.
Subgoal 1.14.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G6

13 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 1.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge D2 D1' M

12 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 1.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G6 M

11 other subgoals.

cut_admissibility < unfold 14.
Subgoal 1.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G6 /\
   perm G2 G6

11 other subgoals.

cut_admissibility < exists A1, B1, LL, LL1, D5, D6, G5, G6.
Subgoal 1.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G6 /\ perm G6 G6

11 other subgoals.

cut_admissibility < split.
Subgoal 1.14.3.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL (with A1 B1) M

18 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 1.14.3.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL A1 D5

17 other subgoals.

cut_admissibility < search.
Witness: apply H23.
Subgoal 1.14.3.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL1 B1 D6

16 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 1.14.3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G5 D5

15 other subgoals.

cut_admissibility < search.
Witness: apply H22.
Subgoal 1.14.3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G6 D6

14 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 1.14.3.6:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 perm LL1 LL

13 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 perm G5 G6

12 other subgoals.

cut_admissibility < apply perm_sym to H37.
Subgoal 1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
H48 : perm G5 G6
============================
 perm G5 G6

12 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 perm G6 G6

11 other subgoals.

cut_admissibility < apply perm_1_is_list to H37.
Subgoal 1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
H48 : is_list G6
============================
 perm G6 G6

11 other subgoals.

cut_admissibility < apply perm_refl to *H48.
Subgoal 1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (tensor A B) D'
H18 : adj KK A1 U
H19 : adj U (tensor A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (tensor A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (tensor A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (tensor A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
H49 : perm G6 G6
============================
 perm G6 G6

11 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H11 : tensor A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H11.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 1.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK A1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 15, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H11 : tensor A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (tensor A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H11.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 1.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (tensor A B) D'
H13 : adj KK B1 U
H14 : adj U (tensor A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (tensor A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 16, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G2'1 G3 G4 D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G2'1 B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G2'1 G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to H14.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_perm_result to H16 H4.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H9.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_perm_result to H24 H4.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H25 H5.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H27 H10.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H31 H13.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H23.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H23.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H36.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to *H26.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H38.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H37.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_2_is_list to H40.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H41 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_refl to *H41.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < exists M.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

8 other subgoals.

cut_admissibility < exists D5.
Subgoal 1.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

8 other subgoals.

cut_admissibility < split.
Subgoal 1.17.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 merge G2' G1 M

10 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 1.17.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 merge D2 D1' D5

9 other subgoals.

cut_admissibility < search.
Witness: apply H37.
Subgoal 1.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 prove M D5

8 other subgoals.

cut_admissibility < unfold 17.
Subgoal 1.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

8 other subgoals.

cut_admissibility < exists A1, B1, LL, LL1, G5, G6, D5, D6.
Subgoal 1.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- tensor A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (tensor A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (tensor A B) D1
H5 : adj G2' (tensor A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (tensor A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (tensor A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D5 D5
============================
 adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

8 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H35, apply H22), apply H30), apply H21), apply H29), apply H33), apply H42), apply H40).
Subgoal 2:

Variables: G1 D1 D1' G2 G2' D2 B A
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H9 : adj nil (atom A1) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H9.
Subgoal 2.1:

Variables: G1 D1' G2 G2' D2 B A A1
C <-- plus A B
D1 <-- atom A1 :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) (atom A1 :: nil)
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H4.
Subgoal 2.1:

Variables: G1 G2 G2' D2 B A A1 K
C <-- plus A B
D1 <-- atom A1 :: nil
D1' <-- atom A1 :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
H12 : formula (atom A1)
H13 : adj K (plus A B) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A1 :: K) D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H13.
Subgoal 2.2:

Variables: D1 D1' G2 G2' D2 B A
C <-- plus A B
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H8.
Subgoal 2.2:

Variables: D1' G2 G2' D2 B A
C <-- plus A B
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) (one :: nil)
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H4.
Subgoal 2.2:

Variables: G2 G2' D2 B A K
C <-- plus A B
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
H11 : formula one
H12 : adj K (plus A B) nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H12.
Subgoal 2.3:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 2.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H10.
Subgoal 2.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
H13 : merge G2' G1 M
H14 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H13, apply H11), unfold(prove, 3, exists[G' = G3] split(apply H14, apply H12))).
Subgoal 2.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H4 H5.
Subgoal 2.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H9.
Subgoal 2.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 2.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H18.
Subgoal 2.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
H19 : merge G2' G1 M
H20 : adj LL1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H19, apply H13), unfold(prove, 4, exists[A = A1, B = B1, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H20, apply H15), apply H17), apply H14))).
Subgoal 2.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : plus A B = tensor A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H15.
Subgoal 2.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_3 to H9 H16.
Subgoal 2.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H17 : (exists JJ, adj JJ (plus A B) D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 (plus A B) D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H17.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_swap to H18 H11.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H21 H5.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
H28 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H27 *H28.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H10.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_1_is_list to H12.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply change_merge_order to H33 H26 H19.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (plus A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (plus A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 2.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj JJ (plus A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (plus A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (plus A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H40), unfold(prove, 5, exists[A = A1, B = B1, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H29), apply H25), apply H12), apply H24), apply H14))).
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H12.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H21 H5.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to H27 H28.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H29.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H10.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H31.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to H33 H34.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H35 H26 H37.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_right to H39 H38.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H40 H4.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_2 to H41 H43.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < exists L.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists D3, merge G2' G1 L /\ merge D2 D1' D3 /\ prove L D3

19 other subgoals.

cut_admissibility < exists M.
Subgoal 2.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

19 other subgoals.

cut_admissibility < split.
Subgoal 2.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L

21 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 2.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge D2 D1' M

20 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 2.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 prove L M

19 other subgoals.

cut_admissibility < unfold 5.
Subgoal 2.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

19 other subgoals.

cut_admissibility < exists A1, B1, L1, D3, D5, D1'1, LL, G3, G5.
Subgoal 2.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D'
H18 : adj KK1 (plus A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (plus A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (plus A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 adj L1 (tensor A1 B1) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A1 D3 /\ adj LL B1 D5 /\ prove G3 D3 /\ prove G5 D5

19 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H42, apply H36), apply H30), apply H11), apply H25), apply H13), apply H24).
Subgoal 2.6:

Variables: G1 D1' G2 G2' D2 B A
C <-- plus A B
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) nil
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H4.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H10 : plus A B = bot /\ perm D1' D' \/ (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H10.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H11 H5.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H15 H13.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (plus A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H16 H4.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (plus A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_2 to H17 H19.
Subgoal 2.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (plus A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (plus A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
H20 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H20), unfold(prove, 7, exists[D' = D3] split(apply H18, apply H14))).
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H12 : plus A B = par A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H12.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H15 H9.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H22 H14.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H13 H8.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H25 H24.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (plus A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result to H26 H4.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (plus A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H27 H29.
Subgoal 2.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (plus A B) D'
H14 : adj KK B1 U
H15 : adj U (plus A B) D4
H16 : adj U A1 U1
H17 : adj U1 (plus A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (plus A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
H30 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H18, apply H30), unfold(prove, 8, exists[A = A1, B = B1, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H28, apply H21), apply H23), apply H20))).
Subgoal 2.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_3 to H10 H4.
Subgoal 2.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : (exists JJ, adj JJ (plus A B) D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK (plus A B) D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H15.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H16 H5.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H11.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_2_is_list to H9.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H9.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H26.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
H30 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H31 H19 H17.
Subgoal 2.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (plus A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
H32 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H27, apply H32), unfold(prove, 9, exists[A = A1, B = B1, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H28, apply H25), apply H31), apply H21), apply H12), apply H20), apply H14))).
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H16 H5.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H12.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H25.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H9.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H27.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H28.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
H32 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H31.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H33 H19 H35.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < exists M.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists D3, merge G2' G1 M /\ merge D2 D1' D3 /\ prove M D3

15 other subgoals.

cut_admissibility < exists L1.
Subgoal 2.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

15 other subgoals.

cut_admissibility < split.
Subgoal 2.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M

17 other subgoals.

cut_admissibility < search.
Witness: apply H29.
Subgoal 2.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge D2 D1' L1

16 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 2.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 prove M L1

15 other subgoals.

cut_admissibility < unfold 9.
Subgoal 2.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

15 other subgoals.

cut_admissibility < exists A1, B1, L, G3, G5, G1', LL, D3, D5.
Subgoal 2.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (plus A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 adj L (par A1 B1) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A1 G3 /\
   adj LL B1 G5 /\ prove G3 D3 /\ prove G5 D5

15 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H30, apply H26), apply H34), apply H11), apply H21), apply H13), apply H20).
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_3_is_list to H8.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
H11 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H11.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H15.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H16.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H8.
Subgoal 2.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
H18 : adj LL zero L
H19 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H12, apply H16), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H17))).
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H9.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
H14 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H13 *H14.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H8 H4.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H16 : top = plus A B /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H16.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H17.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H11.
Subgoal 2.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
H20 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H11, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H18, apply H20))).
Subgoal 2.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 2.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 2.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 2.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 12, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 2.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 2.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 2.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 2.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 13, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H16 : plus A B = with A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H16.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to *H13.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H17.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H26 H10.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H29 H5.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H31 H28.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H14.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H30 H15.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H35.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_2_is_list to H37.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H38 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_refl to *H38.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H27.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H40.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H17 H8.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H42 H24.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H43 H4.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H44 H46.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 2.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

10 other subgoals.

cut_admissibility < split.
Subgoal 2.14.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5

12 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 2.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge D2 D1' M

11 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 2.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G5 M

10 other subgoals.

cut_admissibility < unfold 14.
Subgoal 2.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

10 other subgoals.

cut_admissibility < exists A1, B1, LL, LL1, D5, D6, G5, G6.
Subgoal 2.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (plus A B) D'
H18 : adj KK A1 U
H19 : adj U (plus A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (plus A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (plus A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (plus A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

10 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H45, apply H23), apply H33), apply H22), apply H32), apply H41), apply H39), apply H37).
Subgoal 2.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H11 : plus A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H11.
Subgoal 2.15.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 2.15.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil (atom A2) G2
H14 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H13.
Subgoal 2.15.1.1:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 A2
C <-- plus A1 B1
G2 <-- atom A2 :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) (atom A2 :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : adj nil (atom A2) D2
H15 : formula (atom A2)
H16 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H5.
Subgoal 2.15.1.1:

Variables: G1 D1 D1' D2 A1 B1 D' D3 A2 K
C <-- plus A1 B1
G2 <-- atom A2 :: nil
G2' <-- atom A2 :: K
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (plus A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : adj nil (atom A2) D2
H15 : formula (atom A2)
H16 : is_list nil
H17 : formula (atom A2)
H18 : adj K (plus A1 B1) nil
============================
 exists G3 D3, merge (atom A2 :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H18.
Subgoal 2.15.1.2:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3
C <-- plus A1 B1
G2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H13.
Subgoal 2.15.1.2:

Variables: G1 D1 D1' G2' A1 B1 D' D3
C <-- plus A1 B1
G2 <-- nil
D2 <-- one :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil (one :: nil) @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula one
H15 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge (one :: nil) D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H5.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H15 : plus A1 B1 = one /\ perm G2' G' \/ (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H15.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H16.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H16 H13.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H20 H17.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result to H21 H5.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
H24 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H22 H24.
Subgoal 2.15.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
H24 : perm U G2'
H25 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H25, apply H18), unfold(prove, 3, exists[G' = G3] split(apply H23, apply H19))).
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H17 : plus A1 B1 = tensor A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H17.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H18 H15.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H20 H14.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H22.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H21.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H19.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H18 H13.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H30 H29.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result to H31 H5.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
H34 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H34.
Subgoal 2.15.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
H34 : perm U2 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H35, apply H24), unfold(prove, 4, exists[A = A2, B = B2, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H33, apply H26), apply H28), apply H25))).
Subgoal 2.15.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_3 to H15 H5.
Subgoal 2.15.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H20 : (exists JJ, adj JJ (plus A1 B1) G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK (plus A1 B1) G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H20.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H21.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H16.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H28 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H28 : is_list G5
H29 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H29.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_2_is_list to H14.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H31 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H31 : is_list D2'
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H31.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H23 : merge JJ G1 G5
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H30 H34 H22.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H35 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H27 : merge D1'1 D1' LL
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H36 : merge G2' G1 L
H37 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H33 H37 H14.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H36 : merge G2' G1 L
H37 : merge D1' D1'1 LL
H38 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H38.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H36 : merge G2' G1 L
H37 : merge D1' D1'1 LL
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to H39.
Subgoal 2.15.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 JJ
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj JJ (plus A1 B1) G3
H22 : merge JJ G4 G2'
H24 : merge D4 D1' D6
H25 : prove G5 D6
H26 : adj LL A2 D6
H30 : merge G5 G4 L
H33 : merge LL D2' L1
H34 : merge G1 JJ G5
H36 : merge G2' G1 L
H37 : merge D1' D1'1 LL
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H36, apply H41), unfold(prove, 5, exists[A = A2, B = B2, D' = L1, D1 = D6, D2 = D5, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H40, apply H33), apply H30), apply H26), apply H17), apply H25), apply H19))).
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H21.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4 KK
           G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G3 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < rename G3 to G6.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H17.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H28 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H28 : is_list G5
H29 : is_list G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H29.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H30.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_1_is_list to H14.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H32 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H32 : is_list D1'1
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H33 *H32.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H14.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H37.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H38.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H39.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H23 : merge KK G1 G5
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H22 : merge G6 KK G2'
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H22.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H30 H42 H43.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H44 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < exists L, M.
Subgoal 2.15.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

22 other subgoals.

cut_admissibility < split.
Subgoal 2.15.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 merge G2' G1 L

24 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 2.15.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 merge D2 D1' M

23 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 2.15.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 prove L M

22 other subgoals.

cut_admissibility < unfold 5.
Subgoal 2.15.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

22 other subgoals.

cut_admissibility < exists A2, B2, L1, D4, D6, D1'1, LL, G6, G5.
Subgoal 2.15.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G6 G4 KK
           G5 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G6 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G6 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G4
H24 : merge D5 D1' D6
H25 : prove G5 D6
H26 : adj LL B2 D6
H27 : merge D2' D1' LL
H30 : merge G5 G6 L
H31 : merge G6 G5 L
H34 : merge LL D1'1 L1
H35 : merge D1'1 LL L1
H36 : merge D1' D2' LL
H37 : merge D2' D1'1 D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G5
H43 : merge KK G6 G2'
H45 : merge G2' G1 L
============================
 adj L1 (tensor A2 B2) M /\ merge D1'1 LL L1 /\ merge G6 G5 L /\
   adj D1'1 A2 D4 /\ adj LL B2 D6 /\ prove G6 D4 /\ prove G5 D6

22 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H40, apply H35), apply H31), apply H16), apply H26), apply H18), apply H25).
Subgoal 2.15.1.6:

Variables: G1 D1 D1' G2 G2' A1 B1 D' D3
C <-- plus A1 B1
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H13.
Subgoal 2.15.1.6:

Variables: G1 D1 D1' G2' A1 B1 D' D3
C <-- plus A1 B1
G2 <-- bot :: nil
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) (bot :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula bot
H15 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H5.
Subgoal 2.15.1.6:

Variables: G1 D1 D1' A1 B1 D' D3 K
C <-- plus A1 B1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (plus A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula bot
H15 : is_list nil
H16 : formula bot
H17 : adj K (plus A1 B1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H17.
Subgoal 2.15.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H5.
Subgoal 2.15.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 G3 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
H15 : merge G2' G1 G3
H16 : merge D'1 D1' D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H16.
Subgoal 2.15.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 G3 D4 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
H15 : merge G2' G1 G3
H16 : merge D'1 D1' D4
H17 : prove G3 D4
H18 : merge D2 D1' M
H19 : adj D4 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H18), unfold(prove, 7, exists[D' = D4] split(apply H19, apply H17))).
Subgoal 2.15.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H5.
Subgoal 2.15.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H14.
Subgoal 2.15.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H15.
Subgoal 2.15.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
H22 : adj LL1 B2 LL
H23 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H23.
Subgoal 2.15.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
H22 : adj LL1 B2 LL
H23 : merge D'1 D1' LL1
H24 : merge D2 D1' M
H25 : adj LL1 (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H17, apply H24), unfold(prove, 8, exists[A = A2, B = B2, D' = LL1, D1 = D6, D2 = LL] split(split(split(apply H25, apply H20), apply H22), apply H19))).
Subgoal 2.15.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H20 : plus A1 B1 = par A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H20.
Subgoal 2.15.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_3 to H14 H21.
Subgoal 2.15.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H22 : (exists JJ, adj JJ (plus A1 B1) G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 (plus A1 B1) G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H22.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H23 H16.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H26.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H25.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H31.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_2_is_list to H14.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H32 : is_list LL
H33 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H24.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H21 H13.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_right to H38 H37.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H39 H5.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_2 to H40 H42.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H43.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H45 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H45 : is_list D5
H46 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H45 *H46.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H47.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H48 H49 H15.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
H50 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H50.
Subgoal 2.15.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           JJ U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G1'
H24 : merge JJ G2'1 KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G3
H27 : merge U G1 G5
H28 : merge D4 D1' D6
H29 : prove G5 D6
H30 : adj LL A2 G5
H31 : merge JJ G1 LL
H34 : merge LL G2'1 L
H35 : merge G2'1 LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
H50 : merge D1' D2 L1
H51 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H44, apply H51), unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D6, D2 = D5] split(split(split(split(split(split(apply H41, apply H34), apply H48), apply H30), apply H17), apply H29), apply H19))).
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H23 H17.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H26.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H25.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H31.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H14.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H32 : is_list LL
H33 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H37.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H38.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H21 H13.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H40 H39.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H41 H5.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H42 H44.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D6
H47 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H46 *H47.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H48 H49 H50.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H51.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H48.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 2.15.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

18 other subgoals.

cut_admissibility < split.
Subgoal 2.15.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge G2' G1 M

20 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 2.15.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge D2 D1' L1

19 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 prove M L1

18 other subgoals.

cut_admissibility < unfold 9.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

18 other subgoals.

cut_admissibility < exists A2, B2, L.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A2 B2) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G1 /\ adj G2' B2 G2 /\ prove G1 D1 /\
   prove G2 D2

18 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists G1' G2' D1 D2, adj L (par A2 B2) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G3 /\ adj G2' B2 G5 /\ prove G3 D1 /\
   prove G5 D2

18 other subgoals.

cut_admissibility < exists G1', LL.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists D1 D2, adj L (par A2 B2) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A2 G3 /\ adj LL B2 G5 /\ prove G3 D1 /\ prove G5 D2

18 other subgoals.

cut_admissibility < exists D4, D6.
Subgoal 2.15.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G2'1
H24 : merge G1' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G1' L
H35 : merge G1' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 adj L (par A2 B2) M /\ merge G1' LL L /\ merge D4 D6 L1 /\ adj G1' A2 G3 /\
   adj LL B2 G5 /\ prove G3 D4 /\ prove G5 D6

18 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H43, apply H35), apply H53), apply H16), apply H30), apply H18), apply H29).
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H15 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H15 : is_list G2'
H16 : is_list G1
H17 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H15 *H16.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H17 : is_list D1
H18 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H19.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H13 H5.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H22 : zero = plus A1 B1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H22.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H23 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H23.
Subgoal 2.15.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1 KK LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H23 : adj KK zero G2'
H24 : adj LL zero L
H25 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H18, apply H20), unfold(prove, 10, exists[G' = LL] split(apply H24, apply H21))).
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H15 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H15 : is_list G2'
H16 : is_list G1
H17 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H15 *H16.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_3_is_list to H13.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
H20 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H18.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
H20 : is_list D2
H21 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H19 *H20.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H22 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H22.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H23 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H13.
Subgoal 2.15.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H23 : merge D2 D1' L1
H24 : adj LL top L1
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H18, apply H23), unfold(prove, 11, exists[D' = LL] split(apply H24, apply H21))).
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H16 : plus A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H16.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H17 H14.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H19.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H17 H13.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_left to H25 H24.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H26 H5.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H29.
Subgoal 2.15.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
H30 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H30, apply H21), unfold(prove, 12, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H28, apply H23), apply H22))).
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H16 : plus A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H16.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H17 H14.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H19.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H17 H13.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_left to H25 H24.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H26 H5.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H29.
Subgoal 2.15.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
H30 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H30, apply H21), unfold(prove, 13, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H28, apply H23), apply H22))).
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D2' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D2' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D2' D'1
H19 : perm G3 G2
H20 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < rename D2' to D5'.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H19 : perm G3 G2
H20 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H19.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_perm_result to H21 H5.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H22.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H14.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H20.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_perm_result to H29 H5.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H30.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H33 H15.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H23.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H37.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H31.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H39.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H40 H38.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_2_is_list to H41.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H42 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_refl to *H42.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H18.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H44 H28.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H28.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 2.15.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

13 other subgoals.

cut_admissibility < split.
Subgoal 2.15.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge G2' G1 G5

15 other subgoals.

cut_admissibility < search.
Witness: apply H38.
Subgoal 2.15.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge D2 D1' M

14 other subgoals.

cut_admissibility < search.
Witness: apply H46.
Subgoal 2.15.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 prove G5 M

13 other subgoals.

cut_admissibility < unfold 14.
Subgoal 2.15.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

13 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 2.15.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D1 /\
   adj D2' B2 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G5 /\ perm G2 G5

13 other subgoals.

cut_admissibility < exists LL1, D6, D7.
Subgoal 2.15.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D6 /\ adj LL1 B2 D7 /\
   prove G1 D6 /\ prove G2 D7 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

13 other subgoals.

cut_admissibility < search.
Witness: exists[G1 = G5, G2 = G6] split(split(split(split(split(split(split(apply H47, apply H27), apply H35), apply H26), apply H34), apply H45), apply H43), apply H41).
Subgoal 2.15.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H5.
Subgoal 2.15.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H14.
Subgoal 2.15.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL A2 D5
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H20.
Subgoal 2.15.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL A2 D5
H20 : merge D'1 D1' LL
H21 : merge D2 D1' M
H22 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H21), unfold(prove, 15, exists[A = A2, B = B2, D' = LL, D1 = D5] split(split(apply H22, apply H19), apply H18))).
Subgoal 2.15.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H5.
Subgoal 2.15.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H14.
Subgoal 2.15.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL B2 D5
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H20.
Subgoal 2.15.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL B2 D5
H20 : merge D'1 D1' LL
H21 : merge D2 D1' M
H22 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H21), unfold(prove, 16, exists[A = A2, B = B2, D' = LL, D1 = D5] split(split(apply H22, apply H19), apply H18))).
Subgoal 2.15.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.15.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H21 : plus A1 B1 = plus A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H21.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH to H6 H10 H16 H9 H14.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H19.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
H26 : merge D2 D' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to *H12.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
H26 : merge D2 D' D6
H27 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H26 H27.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
H26 : merge D2 D' D6
H27 : perm D' D1'
H28 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
H26 : merge D2 D' D6
H27 : perm D' D1'
H28 : merge D2 D1' D6
H29 : perm G' G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H29.
Subgoal 2.15.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' A2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G' G1 G5
H24 : merge D4 D' D6
H25 : prove G5 D6
H26 : merge D2 D' D6
H27 : perm D' D1'
H28 : merge D2 D1' D6
H29 : perm G' G2'
H30 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = D6] split(split(apply H30, apply H28), apply H25).
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H22 H14.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H24.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H23.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_perm_result to H30 H22.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H31 H15.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H34.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H35 H33.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H32.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H40.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H22 H13.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_left to H42 H29.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H43 H5.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H44 H46.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H19.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H20.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H49 H48.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_1_is_list to H50.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H51 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_refl to *H51.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to H50.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < exists M, D7.
Subgoal 2.15.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge G2' G1 M /\ merge D2 D1' D7 /\ prove M D7

10 other subgoals.

cut_admissibility < split.
Subgoal 2.15.1.17.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge G2' G1 M

12 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 2.15.1.17.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge D2 D1' D7

11 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 2.15.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 prove M D7

10 other subgoals.

cut_admissibility < unfold 17.
Subgoal 2.15.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D7 /\
   perm D2 D7

10 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 2.15.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G1 /\
   adj G2' B2 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D7 /\ perm D2 D7

10 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 2.15.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D7 /\ perm D2 D7

10 other subgoals.

cut_admissibility < exists D6, D7.
Subgoal 2.15.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\ prove G5 D6 /\
   prove G6 D7 /\ perm LL1 LL /\ perm D6 D7 /\ perm D7 D7

10 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H45, apply H28), apply H38), apply H27), apply H37), apply H41), apply H53), apply H52).
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 2.15.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK A1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 15, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 2.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 2.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H11 : plus A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (plus A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H11.
Subgoal 2.16.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 2.16.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil (atom A2) G2
H14 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H13.
Subgoal 2.16.1.1:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 A2
C <-- plus A1 B1
G2 <-- atom A2 :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) (atom A2 :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : adj nil (atom A2) D2
H15 : formula (atom A2)
H16 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H5.
Subgoal 2.16.1.1:

Variables: G1 D1 D1' D2 A1 B1 D' D3 A2 K
C <-- plus A1 B1
G2 <-- atom A2 :: nil
G2' <-- atom A2 :: K
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (plus A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : adj nil (atom A2) D2
H15 : formula (atom A2)
H16 : is_list nil
H17 : formula (atom A2)
H18 : adj K (plus A1 B1) nil
============================
 exists G3 D3, merge (atom A2 :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H18.
Subgoal 2.16.1.2:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3
C <-- plus A1 B1
G2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H13.
Subgoal 2.16.1.2:

Variables: G1 D1 D1' G2' A1 B1 D' D3
C <-- plus A1 B1
G2 <-- nil
D2 <-- one :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil (one :: nil) @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula one
H15 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge (one :: nil) D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H5.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H15 : plus A1 B1 = one /\ perm G2' G' \/ (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H15.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H16.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H16 H13.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H20 H17.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result to H21 H5.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
H24 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply perm_merge_1 to H22 H24.
Subgoal 2.16.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' KK G3 D4 U M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' one G2
H14 : prove G' D2 ***
H16 : adj KK (plus A1 B1) G'
H17 : merge KK G1 G3
H18 : merge D2 D1' D4
H19 : prove G3 D4
H20 : adj KK one U
H21 : adj U (plus A1 B1) G2
H22 : merge U G1 M
H23 : adj G3 one M
H24 : perm U G2'
H25 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H25, apply H18), unfold(prove, 3, exists[G' = G3] split(apply H23, apply H19))).
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H17 : plus A1 B1 = tensor A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H17.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H18 H15.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H20 H14.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H22.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H21.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H19.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H18 H13.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H30 H29.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result to H31 H5.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
H34 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H34.
Subgoal 2.16.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 KK U U1 G5 D4 LL
           LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (tensor A2 B2) G2
H14 : adj G4 A2 G3
H15 : adj G' B2 G4
H16 : prove G3 D2 ***
H18 : adj KK (plus A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (plus A1 B1) G4
H21 : adj U A2 U1
H22 : adj U1 (plus A1 B1) G3
H23 : merge U1 G1 G5
H24 : merge D2 D1' D4
H25 : prove G5 D4
H26 : adj LL A2 G5
H27 : merge U G1 LL
H28 : adj LL1 B2 LL
H29 : merge KK G1 LL1
H30 : adj KK (tensor A2 B2) U2
H31 : adj U2 (plus A1 B1) G2
H32 : merge U2 G1 M
H33 : adj LL1 (tensor A2 B2) M
H34 : perm U2 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H35, apply H24), unfold(prove, 4, exists[A = A2, B = B2, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H33, apply H26), apply H28), apply H25))).
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D1'1 D2' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D1'1 D2' D'1
H15 : merge G3 G4 G2
H16 : adj D1'1 A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename D1'1 to D4'.
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D2' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D2' D'1
H15 : merge G3 G4 G2
H16 : adj D4' A2 D4
H17 : adj D2' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename D2' to D5'.
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G3 G4 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename G4 to G5.
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G3 G5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G3 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G3 D4 ***
H19 : prove G5 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename G3 to G4.
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_3 to H15 H5.
Subgoal 2.16.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H20 : (exists JJ, adj JJ (plus A1 B1) G4 /\ merge JJ G5 G2') \/
        (exists KK, adj KK (plus A1 B1) G5 /\ merge G4 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H20.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H21.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G3 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G3
H24 : merge D4 D1' D6
H25 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < rename G3 to G6.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H16.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H28 : is_list G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H28 : is_list G6
H29 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H29.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_2_is_list to H14.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H31 : is_list D5'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H31 : is_list D5'
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H31.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H23 : merge JJ G1 G6
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H33 : merge LL D5' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H30 H34 H22.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H35 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H27 : merge D4' D1' LL
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H36 : merge G2' G1 L
H37 : merge D1' D4' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H33 H37 H14.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H36 : merge G2' G1 L
H37 : merge D1' D4' LL
H38 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H38.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H36 : merge G2' G1 L
H37 : merge D1' D4' LL
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H39.
Subgoal 2.16.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 JJ
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj JJ (plus A1 B1) G4
H22 : merge JJ G5 G2'
H24 : merge D4 D1' D6
H25 : prove G6 D6
H26 : adj LL A2 D6
H30 : merge G6 G5 L
H33 : merge LL D5' L1
H34 : merge G1 JJ G6
H36 : merge G2' G1 L
H37 : merge D1' D4' LL
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H36, apply H41), unfold(prove, 5, exists[A = A2, B = B2, D' = L1, D1 = D6, D2 = D5, D1' = LL, D2' = D5', G1 = G6, G2 = G5] split(split(split(split(split(split(apply H40, apply H33), apply H30), apply H26), apply H17), apply H25), apply H19))).
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H21.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G3 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G3
H24 : merge D5 D1' D6
H25 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < rename G3 to G6.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H17.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H28 : is_list G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H28 : is_list G6
H29 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H29.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H30.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_1_is_list to H14.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H32 : is_list D4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H32 : is_list D4'
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H33 *H32.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H14.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H37.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H38.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H39 : merge D1' D2 M
H40 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H39.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H23 : merge KK G1 G6
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H22 : merge G4 KK G2'
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H22.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H30 H42 H43.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H44 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < exists L, M.
Subgoal 2.16.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

21 other subgoals.

cut_admissibility < split.
Subgoal 2.16.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 merge G2' G1 L

23 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 2.16.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 merge D2 D1' M

22 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 2.16.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 prove L M

21 other subgoals.

cut_admissibility < unfold 5.
Subgoal 2.16.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

21 other subgoals.

cut_admissibility < exists A2, B2, L1.
Subgoal 2.16.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A2 B2) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A2 D1 /\ adj D2' B2 D2 /\ prove G1 D1 /\
   prove G2 D2

21 other subgoals.

cut_admissibility < exists D4, D6, D4', LL.
Subgoal 2.16.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 exists G1 G2, adj L1 (tensor A2 B2) M /\ merge D4' LL L1 /\ merge G1 G2 L /\
   adj D4' A2 D4 /\ adj LL B2 D6 /\ prove G1 D4 /\ prove G2 D6

21 other subgoals.

cut_admissibility < exists G4, G6.
Subgoal 2.16.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 D4' D5' G4 G5 KK
           G6 D6 LL L L1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (tensor A2 B2) D2
H14 : merge D4' D5' D'1
H15 : merge G4 G5 G2
H16 : adj D4' A2 D4
H17 : adj D5' B2 D5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G5
H24 : merge D5 D1' D6
H25 : prove G6 D6
H26 : adj LL B2 D6
H27 : merge D5' D1' LL
H30 : merge G6 G4 L
H31 : merge G4 G6 L
H34 : merge LL D4' L1
H35 : merge D4' LL L1
H36 : merge D1' D5' LL
H37 : merge D5' D4' D'1
H38 : merge D1' D'1 L1
H40 : adj L1 (tensor A2 B2) M
H41 : merge D2 D1' M
H42 : merge G1 KK G6
H43 : merge KK G4 G2'
H45 : merge G2' G1 L
============================
 adj L1 (tensor A2 B2) M /\ merge D4' LL L1 /\ merge G4 G6 L /\
   adj D4' A2 D4 /\ adj LL B2 D6 /\ prove G4 D4 /\ prove G6 D6

21 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H40, apply H35), apply H31), apply H16), apply H26), apply H18), apply H25).
Subgoal 2.16.1.6:

Variables: G1 D1 D1' G2 G2' A1 B1 D' D3
C <-- plus A1 B1
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H13.
Subgoal 2.16.1.6:

Variables: G1 D1 D1' G2' A1 B1 D' D3
C <-- plus A1 B1
G2 <-- bot :: nil
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) (bot :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula bot
H15 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H5.
Subgoal 2.16.1.6:

Variables: G1 D1 D1' A1 B1 D' D3 K
C <-- plus A1 B1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (plus A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H14 : formula bot
H15 : is_list nil
H16 : formula bot
H17 : adj K (plus A1 B1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H17.
Subgoal 2.16.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H5.
Subgoal 2.16.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 G3 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
H15 : merge G2' G1 G3
H16 : merge D'1 D1' D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H16.
Subgoal 2.16.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 G3 D4 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 bot D2
H14 : prove G2 D'1 ***
H15 : merge G2' G1 G3
H16 : merge D'1 D1' D4
H17 : prove G3 D4
H18 : merge D2 D1' M
H19 : adj D4 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H18), unfold(prove, 7, exists[D' = D4] split(apply H19, apply H17))).
Subgoal 2.16.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H5.
Subgoal 2.16.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H14.
Subgoal 2.16.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H15.
Subgoal 2.16.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
H22 : adj LL1 B2 LL
H23 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H23.
Subgoal 2.16.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 D5 G3 D6 LL LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (par A2 B2) D2
H14 : adj D5 A2 D4
H15 : adj D'1 B2 D5
H16 : prove G2 D4 ***
H17 : merge G2' G1 G3
H18 : merge D4 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D5 D1' LL
H22 : adj LL1 B2 LL
H23 : merge D'1 D1' LL1
H24 : merge D2 D1' M
H25 : adj LL1 (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H17, apply H24), unfold(prove, 8, exists[A = A2, B = B2, D' = LL1, D1 = D6, D2 = LL] split(split(split(apply H25, apply H20), apply H22), apply H19))).
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G1' G2'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G1' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G1' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < rename G1' to G3'.
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G2'1 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G2'1 G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G2'1 B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H20 : plus A1 B1 = par A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H20.
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_3 to H14 H21.
Subgoal 2.16.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H22 : (exists JJ, adj JJ (plus A1 B1) G3' /\ merge JJ G4' KK) \/
        (exists KK1, adj KK1 (plus A1 B1) G4' /\ merge G3' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H22.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < rename G4 to G5.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G5 G3' G4' D4 D5 KK JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G5
H18 : prove G3 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < rename G3 to G4.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H23 H16.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H26.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H25.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H31.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_2_is_list to H14.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H32 : is_list LL
H33 : is_list G4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H24.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H21 H13.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H38 H37.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H39 H5.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_2 to H40 H42.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H43.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H45 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H45 : is_list D5
H46 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H45 *H46.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H47.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H48 H49 H15.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
H50 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H50.
Subgoal 2.16.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G4 G5 G3' G4' D4 D5 KK JJ
           U G3 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G4
H17 : adj G4' B2 G5
H18 : prove G4 D4 ***
H19 : prove G5 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj JJ (plus A1 B1) G3'
H24 : merge JJ G4' KK
H25 : adj JJ A2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G3
H28 : merge D4 D1' D6
H29 : prove G3 D6
H30 : adj LL A2 G3
H31 : merge JJ G1 LL
H34 : merge LL G4' L
H35 : merge G4' LL L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
H38 : adj KK (par A2 B2) U1
H39 : adj U1 (plus A1 B1) G2
H40 : merge G1 U1 M
H41 : adj L (par A2 B2) M
H42 : perm U1 G2'
H43 : merge G1 G2' M
H44 : merge G2' G1 M
H47 : merge D5 D6 L1
H48 : merge D6 D5 L1
H49 : merge D1' D4 D6
H50 : merge D1' D2 L1
H51 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H44, apply H51), unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G3, G2 = G5, G1' = LL, G2' = G4', D1 = D6, D2 = D5] split(split(split(split(split(split(apply H41, apply H34), apply H48), apply H30), apply H17), apply H29), apply H19))).
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H23 H17.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H26.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H25.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H31.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_1_is_list to H14.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H32 : is_list LL
H33 : is_list G3'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H34 H36 H37.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H38.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H21 H13.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H40 H39.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H41 H5.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H42 H44.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D6
H47 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H46 *H47.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H48 H49 H50.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H51.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H48.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 2.16.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

17 other subgoals.

cut_admissibility < split.
Subgoal 2.16.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge G2' G1 M

19 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 2.16.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 merge D2 D1' L1

18 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 2.16.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 prove M L1

17 other subgoals.

cut_admissibility < unfold 9.
Subgoal 2.16.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

17 other subgoals.

cut_admissibility < exists A2, B2, L.
Subgoal 2.16.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A2 B2) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G1 /\ adj G2' B2 G2 /\ prove G1 D1 /\
   prove G2 D2

17 other subgoals.

cut_admissibility < exists G3, G5, G3', LL.
Subgoal 2.16.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 exists D1 D2, adj L (par A2 B2) M /\ merge G3' LL L /\ merge D1 D2 L1 /\
   adj G3' A2 G3 /\ adj LL B2 G5 /\ prove G3 D1 /\ prove G5 D2

17 other subgoals.

cut_admissibility < exists D4, D6.
Subgoal 2.16.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 G4 G3' G4' D4 D5 KK
           KK1 U G5 D6 LL L U1 M L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (par A2 B2) G2
H14 : merge G3' G4' G'
H15 : merge D4 D5 D2
H16 : adj G3' A2 G3
H17 : adj G4' B2 G4
H18 : prove G3 D4 ***
H19 : prove G4 D5 ***
H21 : adj KK (plus A1 B1) G'
H23 : adj KK1 (plus A1 B1) G4'
H24 : merge G3' KK1 KK
H25 : adj KK1 B2 U
H26 : adj U (plus A1 B1) G4
H27 : merge U G1 G5
H28 : merge D5 D1' D6
H29 : prove G5 D6
H30 : adj LL B2 G5
H31 : merge KK1 G1 LL
H34 : merge LL G3' L
H35 : merge G3' LL L
H36 : merge G1 KK1 LL
H37 : merge KK1 G3' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (plus A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D6 D4 L1
H49 : merge D1' D5 D6
H50 : merge D5 D4 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge D4 D6 L1
============================
 adj L (par A2 B2) M /\ merge G3' LL L /\ merge D4 D6 L1 /\ adj G3' A2 G3 /\
   adj LL B2 G5 /\ prove G3 D4 /\ prove G5 D6

17 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H43, apply H35), apply H53), apply H16), apply H30), apply H18), apply H29).
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H15 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G'
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H15 : is_list G2'
H16 : is_list G1
H17 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H15 *H16.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H17 : is_list D1
H18 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H14 : is_list D2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H19.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H13 H5.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H22 : zero = plus A1 B1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H22.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H23 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H23.
Subgoal 2.16.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 G' L L1 KK LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' zero G2
H17 : is_list D1
H18 : merge G2' G1 L
H20 : merge D2 D1' L1
H21 : is_list L1
H23 : adj KK zero G2'
H24 : adj LL zero L
H25 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H18, apply H20), unfold(prove, 10, exists[G' = LL] split(apply H24, apply H21))).
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H15 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H15 : is_list G2'
H16 : is_list G1
H17 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H15 *H16.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_3_is_list to H13.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
H20 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H18.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H19 : is_list D1'
H20 : is_list D2
H21 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H19 *H20.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H22 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to *H22.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H23 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H13.
Subgoal 2.16.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D'1 L L1 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 top D2
H14 : is_list G2
H17 : is_list D1
H18 : merge G2' G1 L
H21 : is_list L
H23 : merge D2 D1' L1
H24 : adj LL top L1
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H18, apply H23), unfold(prove, 11, exists[D' = LL] split(apply H24, apply H21))).
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H16 : plus A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H16.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H17 H14.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H19.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H17 H13.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_left to H25 H24.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H26 H5.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H29.
Subgoal 2.16.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' A2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK A2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL A2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
H30 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H30, apply H21), unfold(prove, 12, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H28, apply H23), apply H22))).
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H16 : plus A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H16.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H17 H14.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H19.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H17 H13.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_left to H25 H24.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H26 H5.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H29.
Subgoal 2.16.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G3 KK U G4 D4 LL U1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (with A2 B2) G2
H14 : adj G' B2 G3
H15 : prove G3 D2 ***
H17 : adj KK (plus A1 B1) G'
H18 : adj KK B2 U
H19 : adj U (plus A1 B1) G3
H20 : merge U G1 G4
H21 : merge D2 D1' D4
H22 : prove G4 D4
H23 : adj LL B2 G4
H24 : merge KK G1 LL
H25 : adj KK (with A2 B2) U1
H26 : adj U1 (plus A1 B1) G2
H27 : merge U1 G1 M
H28 : adj LL (with A2 B2) M
H29 : perm U1 G2'
H30 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D4] split(split(apply H30, apply H21), unfold(prove, 13, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H28, apply H23), apply H22))).
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D2' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D2' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D2' D'1
H19 : perm G3 G2
H20 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < rename D2' to D5'.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H19 : perm G3 G2
H20 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_sym to *H19.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_perm_result to H21 H5.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H22.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H14.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H20 : perm G4 G2
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_sym to *H20.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_perm_result to H29 H5.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H30.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_1 to H33 H15.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H23 : perm G2' KK
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_sym to *H23.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H37.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H31 : perm G2' KK1
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_sym to *H31.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H39.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_perm_det to H40 H38.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_2_is_list to H41.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H42 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_refl to *H42.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H18.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_perm_det to H44 H28.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H28.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 2.16.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

12 other subgoals.

cut_admissibility < split.
Subgoal 2.16.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge G2' G1 G5

14 other subgoals.

cut_admissibility < search.
Witness: apply H38.
Subgoal 2.16.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 merge D2 D1' M

13 other subgoals.

cut_admissibility < search.
Witness: apply H46.
Subgoal 2.16.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 prove G5 M

12 other subgoals.

cut_admissibility < unfold 14.
Subgoal 2.16.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

12 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 2.16.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D1 /\
   adj D2' B2 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G5 /\ perm G2 G5

12 other subgoals.

cut_admissibility < exists LL1, D6, D7.
Subgoal 2.16.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 exists G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D6 /\ adj LL1 B2 D7 /\
   prove G1 D6 /\ prove G2 D7 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

12 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 2.16.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D5' D4 D5 G3 G4 KK G5 D6
           LL KK1 G6 D7 LL1 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (with A2 B2) D2
H14 : adj D'1 A2 D4
H15 : adj D5' B2 D5
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm D5' D'1
H21 : perm G2 G3
H22 : adj KK (plus A1 B1) G3
H24 : merge KK G1 G5
H25 : merge D4 D1' D6
H26 : prove G5 D6
H27 : adj LL A2 D6
H28 : merge D'1 D1' LL
H29 : perm G2 G4
H30 : adj KK1 (plus A1 B1) G4
H32 : merge KK1 G1 G6
H33 : merge D5 D1' D7
H34 : prove G6 D7
H35 : adj LL1 B2 D7
H36 : merge D5' D1' LL1
H37 : perm KK G2'
H38 : merge G2' G1 G5
H39 : perm KK1 G2'
H40 : merge G2' G1 G6
H41 : perm G6 G5
H43 : perm G5 G5
H44 : merge D'1 D1' LL1
H45 : perm LL1 LL
H46 : merge D2 D1' M
H47 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M /\ adj LL A2 D6 /\ adj LL1 B2 D7 /\ prove G5 D6 /\
   prove G6 D7 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

12 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H47, apply H27), apply H35), apply H26), apply H34), apply H45), apply H43), apply H41).
Subgoal 2.16.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H5.
Subgoal 2.16.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H14.
Subgoal 2.16.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL A2 D5
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H20.
Subgoal 2.16.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 A2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL A2 D5
H20 : merge D'1 D1' LL
H21 : merge D2 D1' M
H22 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H21), unfold(prove, 15, exists[A = A2, B = B2, D' = LL, D1 = D5] split(split(apply H22, apply H19), apply H18))).
Subgoal 2.16.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H5.
Subgoal 2.16.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H14.
Subgoal 2.16.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL B2 D5
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_left to H13 H20.
Subgoal 2.16.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 D'1 D4 G3 D5 LL M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj D'1 (plus A2 B2) D2
H14 : adj D'1 B2 D4
H15 : prove G2 D4 ***
H16 : merge G2' G1 G3
H17 : merge D4 D1' D5
H18 : prove G3 D5
H19 : adj LL B2 D5
H20 : merge D'1 D1' LL
H21 : merge D2 D1' M
H22 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H21), unfold(prove, 16, exists[A = A2, B = B2, D' = LL, D1 = D5] split(split(apply H22, apply H19), apply H18))).
Subgoal 2.16.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H13.
Subgoal 2.16.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H21 : plus A1 B1 = plus A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (plus A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H21.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH to H7 H10 H17 H9 H15.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H18.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : perm G2' G'
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
H27 : perm G' G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H27.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
H27 : perm G' G2'
H28 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H20.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
H27 : perm G' G2'
H28 : merge G2' G1 G5
H29 : merge D2 D' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to *H12.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
H27 : perm G' G2'
H28 : merge G2' G1 G5
H29 : merge D2 D' D6
H30 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H29 H30.
Subgoal 2.16.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 G5 D6
C <-- plus A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A2 B2) D1
H5 : adj G2' (plus A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (plus A2 B2) D1
H9 : adj D' B2 D3
H10 : prove G1 D3 **
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H23 : merge G2'1 G1 G5
H24 : merge D5 D' D6
H25 : prove G5 D6
H26 : merge G' G1 G5
H27 : perm G' G2'
H28 : merge G2' G1 G5
H29 : merge D2 D' D6
H30 : perm D' D1'
H31 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = D6] split(split(apply H28, apply H31), apply H25).
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H22 H14.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H24.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H23.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H18 : perm G2'1 G'
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_perm_result to H30 H22.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H31 H15.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H34.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_1 to H35 H33.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H32.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H40.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H22 H13.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_left to H42 H29.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result to H43 H5.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_1 to H44 H46.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H19.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H20.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_perm_det to H49 H48.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_1_is_list to H50.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H51 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_refl to *H51.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_sym to H50.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < exists M, D7.
Subgoal 2.16.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge G2' G1 M /\ merge D2 D1' D7 /\ prove M D7

9 other subgoals.

cut_admissibility < split.
Subgoal 2.16.1.17.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge G2' G1 M

11 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 2.16.1.17.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 merge D2 D1' D7

10 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 2.16.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 prove M D7

9 other subgoals.

cut_admissibility < unfold 17.
Subgoal 2.16.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D7 /\
   perm D2 D7

9 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 2.16.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G1 /\
   adj G2' B2 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D7 /\ perm D2 D7

9 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 2.16.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 exists D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D7 /\ perm D2 D7

9 other subgoals.

cut_admissibility < exists D6, D7.
Subgoal 2.16.1.17.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 A2 B2 G' G2'1 G3 G4 D4 D5 KK U G5
           D6 LL KK1 U1 G6 D7 LL1 U2 M
C <-- plus A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A1 B1) D1
H5 : adj G2' (plus A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : perm D1' D'
H13 : adj G' (plus A2 B2) G2
H14 : adj G' A2 G3
H15 : adj G2'1 B2 G4
H16 : prove G3 D4 ***
H17 : prove G4 D5 ***
H19 : perm D4 D2
H20 : perm D5 D2
H22 : adj KK (plus A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (plus A1 B1) G3
H25 : merge U G1 G5
H26 : merge D4 D1' D6
H27 : prove G5 D6
H28 : adj LL A2 G5
H29 : merge KK G1 LL
H30 : perm G' G2'1
H31 : adj KK1 (plus A1 B1) G2'1
H32 : perm KK KK1
H33 : adj KK1 B2 U1
H34 : adj U1 (plus A1 B1) G4
H35 : merge U1 G1 G6
H36 : merge D5 D1' D7
H37 : prove G6 D7
H38 : adj LL1 B2 G6
H39 : merge KK1 G1 LL1
H40 : merge KK1 G1 LL
H41 : perm LL1 LL
H42 : adj KK (plus A2 B2) U2
H43 : adj U2 (plus A1 B1) G2
H44 : merge U2 G1 M
H45 : adj LL (plus A2 B2) M
H46 : perm U2 G2'
H47 : merge G2' G1 M
H48 : merge D2 D1' D6
H49 : merge D2 D1' D7
H50 : perm D7 D6
H52 : perm D7 D7
H53 : perm D6 D7
============================
 adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\ prove G5 D6 /\
   prove G6 D7 /\ perm LL1 LL /\ perm D6 D7 /\ perm D7 D7

9 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H45, apply H28), apply H38), apply H27), apply H37), apply H41), apply H53), apply H52).
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 2.16.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (plus A B) D'
H13 : adj KK B1 U
H14 : adj U (plus A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (plus A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 16, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G2'1 G3 G4 D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G2'1 B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G2'1 G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to H14.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_perm_result to H16 H4.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H9.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_perm_result to H24 H4.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H25 H5.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H27 H10.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H31 H13.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H23.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H23.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H36.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to *H26.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H38.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H37.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_1_is_list to H40.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H41 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_refl to *H41.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to H40.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < exists M, D6.
Subgoal 2.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M /\ merge D2 D1' D6 /\ prove M D6

7 other subgoals.

cut_admissibility < split.
Subgoal 2.17.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M

9 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 2.17.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge D2 D1' D6

8 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 2.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 prove M D6

7 other subgoals.

cut_admissibility < unfold 17.
Subgoal 2.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D6 /\
   perm D2 D6

7 other subgoals.

cut_admissibility < exists A1, B1, LL.
Subgoal 2.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G1 /\
   adj G2' B1 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D6 /\ perm D2 D6

7 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 2.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D6 /\ perm D2 D6

7 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 2.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- plus A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (plus A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (plus A B) D1
H5 : adj G2' (plus A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (plus A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (plus A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D6 /\ perm D6 D6

7 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H35, apply H22), apply H30), apply H21), apply H29), apply H33), apply H43), apply H42).
Subgoal 3:

Variables: G1 D1 D1' G2 G2' D2 B A
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 3.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H9 : adj nil (atom A1) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H9.
Subgoal 3.1:

Variables: G1 D1' G2 G2' D2 B A A1
C <-- with A B
D1 <-- atom A1 :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) (atom A1 :: nil)
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H4.
Subgoal 3.1:

Variables: G1 G2 G2' D2 B A A1 K
C <-- with A B
D1 <-- atom A1 :: nil
D1' <-- atom A1 :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
H12 : formula (atom A1)
H13 : adj K (with A B) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A1 :: K) D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H13.
Subgoal 3.2:

Variables: D1 D1' G2 G2' D2 B A
C <-- with A B
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H8.
Subgoal 3.2:

Variables: D1' G2 G2' D2 B A
C <-- with A B
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) (one :: nil)
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H4.
Subgoal 3.2:

Variables: G2 G2' D2 B A K
C <-- with A B
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
H11 : formula one
H12 : adj K (with A B) nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H12.
Subgoal 3.3:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 3.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H10.
Subgoal 3.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
H13 : merge G2' G1 M
H14 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H13, apply H11), unfold(prove, 3, exists[G' = G3] split(apply H14, apply H12))).
Subgoal 3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H4 H5.
Subgoal 3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H9.
Subgoal 3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H18.
Subgoal 3.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
H19 : merge G2' G1 M
H20 : adj LL1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H19, apply H13), unfold(prove, 4, exists[A = A1, B = B1, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H20, apply H15), apply H17), apply H14))).
Subgoal 3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : with A B = tensor A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H15.
Subgoal 3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_3 to H9 H16.
Subgoal 3.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H17 : (exists JJ, adj JJ (with A B) D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 (with A B) D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H17.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H11.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H21 H5.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
H28 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H27 *H28.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H10.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_1_is_list to H12.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H33 H26 H19.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (with A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (with A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 3.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj JJ (with A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (with A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (with A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H40), unfold(prove, 5, exists[A = A1, B = B1, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H29), apply H25), apply H12), apply H24), apply H14))).
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H18 H12.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H21 H5.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to H27 H28.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H29.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H10.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H31.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to H33 H34.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H35 H26 H37.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H39 H38.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H40 H4.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_2 to H41 H43.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists L, M.
Subgoal 3.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

18 other subgoals.

cut_admissibility < split.
Subgoal 3.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L

20 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 3.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge D2 D1' M

19 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 3.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 prove L M

18 other subgoals.

cut_admissibility < unfold 5.
Subgoal 3.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

18 other subgoals.

cut_admissibility < exists A1, B1, L1.
Subgoal 3.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A1 B1) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A1 D1 /\ adj D2' B1 D2 /\ prove G1 D1 /\
   prove G2 D2

18 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 3.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists G1 G2, adj L1 (tensor A1 B1) M /\ merge D1'1 LL L1 /\
   merge G1 G2 L /\ adj D1'1 A1 D3 /\ adj LL B1 D5 /\ prove G1 D3 /\
   prove G2 D5

18 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 3.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D'
H18 : adj KK1 (with A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (with A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (with A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 adj L1 (tensor A1 B1) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A1 D3 /\ adj LL B1 D5 /\ prove G3 D3 /\ prove G5 D5

18 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H42, apply H36), apply H30), apply H11), apply H25), apply H13), apply H24).
Subgoal 3.6:

Variables: G1 D1' G2 G2' D2 B A
C <-- with A B
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) nil
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H4.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H10 : with A B = bot /\ perm D1' D' \/ (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H10.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H11 H5.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H15 H13.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (with A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result to H16 H4.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (with A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H17 H19.
Subgoal 3.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (with A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (with A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
H20 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H20), unfold(prove, 7, exists[D' = D3] split(apply H18, apply H14))).
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H12 : with A B = par A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H12.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H15 H9.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H22 H14.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H13 H8.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H25 H24.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (with A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H26 H4.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (with A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H27 H29.
Subgoal 3.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (with A B) D'
H14 : adj KK B1 U
H15 : adj U (with A B) D4
H16 : adj U A1 U1
H17 : adj U1 (with A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (with A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
H30 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H18, apply H30), unfold(prove, 8, exists[A = A1, B = B1, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H28, apply H21), apply H23), apply H20))).
Subgoal 3.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_3 to H10 H4.
Subgoal 3.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : (exists JJ, adj JJ (with A B) D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK (with A B) D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H15.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H16 H5.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H11.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_2_is_list to H9.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H9.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H26.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
H30 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H31 H19 H17.
Subgoal 3.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (with A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
H32 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H27, apply H32), unfold(prove, 9, exists[A = A1, B = B1, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H28, apply H25), apply H31), apply H21), apply H12), apply H20), apply H14))).
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H16 H5.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H12.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H25.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H9.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H27.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H28.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
H32 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H31.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H33 H19 H35.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 3.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

14 other subgoals.

cut_admissibility < split.
Subgoal 3.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M

16 other subgoals.

cut_admissibility < search.
Witness: apply H29.
Subgoal 3.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge D2 D1' L1

15 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 3.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 prove M L1

14 other subgoals.

cut_admissibility < unfold 9.
Subgoal 3.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

14 other subgoals.

cut_admissibility < exists A1, B1, L.
Subgoal 3.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A1 B1) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A1 G1 /\ adj G2' B1 G2 /\ prove G1 D1 /\
   prove G2 D2

14 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 3.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists D1 D2, adj L (par A1 B1) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A1 G3 /\ adj LL B1 G5 /\ prove G3 D1 /\ prove G5 D2

14 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 3.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (with A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 adj L (par A1 B1) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A1 G3 /\
   adj LL B1 G5 /\ prove G3 D3 /\ prove G5 D5

14 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H30, apply H26), apply H34), apply H11), apply H21), apply H13), apply H20).
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_3_is_list to H8.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
H11 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H11.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H15.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H16.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H8.
Subgoal 3.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
H18 : adj LL zero L
H19 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H12, apply H16), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H17))).
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H9.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
H14 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H13 *H14.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result_diff to H8 H4.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H16 : top = with A B /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H16.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H17.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H11.
Subgoal 3.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
H20 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H11, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H18, apply H20))).
Subgoal 3.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 3.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 3.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 3.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 12, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 3.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 3.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 3.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 3.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 13, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 3.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H16 : with A B = with A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H16.
Subgoal 3.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 3.14.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj nil (atom A2) G2
H19 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H18.
Subgoal 3.14.1.1:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2
C <-- with A1 B1
G2 <-- atom A2 :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) (atom A2 :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H19 : adj nil (atom A2) D2
H20 : formula (atom A2)
H21 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H5.
Subgoal 3.14.1.1:

Variables: G1 D1 D1' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 K
C <-- with A1 B1
G2 <-- atom A2 :: nil
G2' <-- atom A2 :: K
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (with A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H19 : adj nil (atom A2) D2
H20 : formula (atom A2)
H21 : is_list nil
H22 : formula (atom A2)
H23 : adj K (with A1 B1) nil
============================
 exists G3 D3, merge (atom A2 :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H23.
Subgoal 3.14.1.2:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D2' D3 D4 G3 G4
C <-- with A1 B1
G2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H5.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G'
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G'
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H20 : with A1 B1 = one /\ perm G2' G' \/ (exists KK, adj KK (with A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H20.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H21.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H21 H18.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5 U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
H25 : adj KK one U
H26 : adj U (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H25 H22.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5 U M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
H25 : adj KK one U
H26 : adj U (with A1 B1) G2
H27 : merge U G1 M
H28 : adj G5 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result to H5 H26.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5 U M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
H25 : adj KK one U
H26 : adj U (with A1 B1) G2
H27 : merge U G1 M
H28 : adj G5 one M
H29 : perm G2' U
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to H29.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5 U M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
H25 : adj KK one U
H26 : adj U (with A1 B1) G2
H27 : merge U G1 M
H28 : adj G5 one M
H29 : perm G2' U
H30 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H30.
Subgoal 3.14.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK G5 D5 U M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' one G2
H19 : prove G' D2 ***
H21 : adj KK (with A1 B1) G'
H22 : merge KK G1 G5
H23 : merge D2 D1' D5
H24 : prove G5 D5
H25 : adj KK one U
H26 : adj U (with A1 B1) G2
H27 : merge U G1 M
H28 : adj G5 one M
H29 : perm G2' U
H30 : perm U G2'
H31 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H31, apply H23), unfold(prove, 3, exists[G' = G5] split(apply H28, apply H24))).
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H22 : with A1 B1 = tensor A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (with A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H22.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H23 H20.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H25 H19.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H27.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H26.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H24.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
H33 : adj LL1 B2 LL
H34 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H23 H18.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL LL1 U2
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
H33 : adj LL1 B2 LL
H34 : merge KK G1 LL1
H35 : adj KK (tensor A2 B2) U2
H36 : adj U2 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H35 H34.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
H33 : adj LL1 B2 LL
H34 : merge KK G1 LL1
H35 : adj KK (tensor A2 B2) U2
H36 : adj U2 (with A1 B1) G2
H37 : merge U2 G1 M
H38 : adj LL1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result to H36 H5.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
H33 : adj LL1 B2 LL
H34 : merge KK G1 LL1
H35 : adj KK (tensor A2 B2) U2
H36 : adj U2 (with A1 B1) G2
H37 : merge U2 G1 M
H38 : adj LL1 (tensor A2 B2) M
H39 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H39.
Subgoal 3.14.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 KK U
           U1 G7 D5 LL LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (tensor A2 B2) G2
H19 : adj G6 A2 G5
H20 : adj G' B2 G6
H21 : prove G5 D2 ***
H23 : adj KK (with A1 B1) G'
H24 : adj KK B2 U
H25 : adj U (with A1 B1) G6
H26 : adj U A2 U1
H27 : adj U1 (with A1 B1) G5
H28 : merge U1 G1 G7
H29 : merge D2 D1' D5
H30 : prove G7 D5
H31 : adj LL A2 G7
H32 : merge U G1 LL
H33 : adj LL1 B2 LL
H34 : merge KK G1 LL1
H35 : adj KK (tensor A2 B2) U2
H36 : adj U2 (with A1 B1) G2
H37 : merge U2 G1 M
H38 : adj LL1 (tensor A2 B2) M
H39 : perm U2 G2'
H40 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H40, apply H29), unfold(prove, 4, exists[A = A2, B = B2, G' = LL1, G1 = G7, G2 = LL] split(split(split(apply H38, apply H31), apply H33), apply H30))).
Subgoal 3.14.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_3 to H20 H5.
Subgoal 3.14.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H25 : (exists JJ, adj JJ (with A1 B1) G5 /\ merge JJ G6 G2') \/
        (exists KK, adj KK (with A1 B1) G6 /\ merge G5 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H25.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H23 H4 H26.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H29 H21.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_1_is_list to H31.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_1_is_list to H22.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to H33 H34.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_2_is_list to H27.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to H36 H37.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H28 : merge JJ G1 G7
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H38 H39 H27.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H40 : merge G1 G2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H40.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H32 : merge D1'1 D1' LL
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H41 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H41 : merge G2' G1 L1
H42 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H35 H42 H19.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H41 : merge G2' G1 L1
H42 : merge D1' D1'1 LL
H43 : merge D1' D'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H43.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H41 : merge G2' G1 L1
H42 : merge D1' D1'1 LL
H44 : merge D'1 D1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H44.
Subgoal 3.14.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 JJ G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj JJ (with A1 B1) G5
H27 : merge JJ G6 G2'
H29 : merge D5 D1' D7
H30 : prove G7 D7
H31 : adj LL A2 D7
H33 : is_list LL
H34 : is_list D2'1
H35 : merge LL D2'1 L
H36 : is_list G7
H37 : is_list G6
H38 : merge G7 G6 L1
H39 : merge G1 JJ G7
H41 : merge G2' G1 L1
H42 : merge D1' D1'1 LL
H44 : merge D'1 D1' L
H45 : merge D2 D1' M
H46 : adj L (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = M] split(split(apply H41, apply H45), unfold(prove, 5, exists[A = A2, B = B2, D' = L, D1 = D7, D2 = D6, D1' = LL, D2' = D2'1, G1 = G7, G2 = G6] split(split(split(split(split(split(apply H46, apply H35), apply H38), apply H31), apply H22), apply H30), apply H24))).
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H24 H4 H26.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H29 H22.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_1_is_list to H31.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_1_is_list to H21.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to H33 H34.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_1_is_list to H27.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to H36 H37.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H28 : merge KK G1 G7
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H27 : merge G5 KK G2'
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H38 H39 H40.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H41 : merge G1 G2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H41.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H32 : merge D2'1 D1' LL
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H19 : merge D1'1 D2'1 D'1
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H19.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H35 H43 H44.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H45 : merge D1' D'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H45.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H46.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H38.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < exists L1, M.
Subgoal 3.14.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

22 other subgoals.

cut_admissibility < split.
Subgoal 3.14.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 merge G2' G1 L1

24 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 3.14.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 merge D2 D1' M

23 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 3.14.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 prove L1 M

22 other subgoals.

cut_admissibility < unfold 5.
Subgoal 3.14.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

22 other subgoals.

cut_admissibility < exists A2, B2, L.
Subgoal 3.14.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 exists D1 D2 D1' D2' G1 G2, adj L (tensor A2 B2) M /\ merge D1' D2' L /\
   merge G1 G2 L1 /\ adj D1' A2 D1 /\ adj D2' B2 D2 /\ prove G1 D1 /\
   prove G2 D2

22 other subgoals.

cut_admissibility < exists D5, D7, D1'1, LL.
Subgoal 3.14.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 exists G1 G2, adj L (tensor A2 B2) M /\ merge D1'1 LL L /\ merge G1 G2 L1 /\
   adj D1'1 A2 D5 /\ adj LL B2 D7 /\ prove G1 D5 /\ prove G2 D7

22 other subgoals.

cut_admissibility < exists G5, G7.
Subgoal 3.14.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 D1'1
           D2'1 G5 G6 KK G7 D7 LL L L1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (tensor A2 B2) D2
H20 : merge G5 G6 G2
H21 : adj D1'1 A2 D5
H22 : adj D2'1 B2 D6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G6
H29 : merge D6 D1' D7
H30 : prove G7 D7
H31 : adj LL B2 D7
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L
H36 : is_list G7
H37 : is_list G5
H38 : merge G7 G5 L1
H39 : merge G1 KK G7
H40 : merge KK G5 G2'
H42 : merge G2' G1 L1
H43 : merge D1' D2'1 LL
H44 : merge D2'1 D1'1 D'1
H46 : merge D'1 D1' L
H47 : merge D2 D1' M
H48 : adj L (tensor A2 B2) M
H49 : merge G5 G7 L1
H50 : merge D1'1 LL L
============================
 adj L (tensor A2 B2) M /\ merge D1'1 LL L /\ merge G5 G7 L1 /\
   adj D1'1 A2 D5 /\ adj LL B2 D7 /\ prove G5 D5 /\ prove G7 D7

22 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H48, apply H50), apply H49), apply H21), apply H31), apply H23), apply H30).
Subgoal 3.14.1.6:

Variables: G1 D1 D1' G2 G2' A1 B1 D' D2' D3 D4 G3 G4
C <-- with A1 B1
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H18.
Subgoal 3.14.1.6:

Variables: G1 D1 D1' G2' A1 B1 D' D2' D3 D4 G3 G4
C <-- with A1 B1
G2 <-- bot :: nil
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) (bot :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H19 : formula bot
H20 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H5.
Subgoal 3.14.1.6:

Variables: G1 D1 D1' A1 B1 D' D2' D3 D4 G3 G4 K
C <-- with A1 B1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (with A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H19 : formula bot
H20 : is_list nil
H21 : formula bot
H22 : adj K (with A1 B1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H22.
Subgoal 3.14.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 bot D2
H19 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H5.
Subgoal 3.14.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 G5 D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 bot D2
H19 : prove G2 D'1 ***
H20 : merge G2' G1 G5
H21 : merge D'1 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H21.
Subgoal 3.14.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 G5 D5 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 bot D2
H19 : prove G2 D'1 ***
H20 : merge G2' G1 G5
H21 : merge D'1 D1' D5
H22 : prove G5 D5
H23 : merge D2 D1' M
H24 : adj D5 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H20, apply H23), unfold(prove, 7, exists[D' = D5] split(apply H24, apply H22))).
Subgoal 3.14.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (par A2 B2) D2
H19 : adj D6 A2 D5
H20 : adj D'1 B2 D6
H21 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H5.
Subgoal 3.14.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 G5 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (par A2 B2) D2
H19 : adj D6 A2 D5
H20 : adj D'1 B2 D6
H21 : prove G2 D5 ***
H22 : merge G2' G1 G5
H23 : merge D5 D1' D7
H24 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H19.
Subgoal 3.14.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 G5 D7
           LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (par A2 B2) D2
H19 : adj D6 A2 D5
H20 : adj D'1 B2 D6
H21 : prove G2 D5 ***
H22 : merge G2' G1 G5
H23 : merge D5 D1' D7
H24 : prove G5 D7
H25 : adj LL A2 D7
H26 : merge D6 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H26 H20.
Subgoal 3.14.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 G5 D7
           LL LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (par A2 B2) D2
H19 : adj D6 A2 D5
H20 : adj D'1 B2 D6
H21 : prove G2 D5 ***
H22 : merge G2' G1 G5
H23 : merge D5 D1' D7
H24 : prove G5 D7
H25 : adj LL A2 D7
H26 : merge D6 D1' LL
H27 : adj LL1 B2 LL
H28 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H28.
Subgoal 3.14.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 D6 G5 D7
           LL LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (par A2 B2) D2
H19 : adj D6 A2 D5
H20 : adj D'1 B2 D6
H21 : prove G2 D5 ***
H22 : merge G2' G1 G5
H23 : merge D5 D1' D7
H24 : prove G5 D7
H25 : adj LL A2 D7
H26 : merge D6 D1' LL
H27 : adj LL1 B2 LL
H28 : merge D'1 D1' LL1
H29 : merge D2 D1' M
H30 : adj LL1 (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H22, apply H29), unfold(prove, 8, exists[A = A2, B = B2, D' = LL1, D1 = D7, D2 = LL] split(split(split(apply H30, apply H25), apply H27), apply H24))).
Subgoal 3.14.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H25 : with A1 B1 = par A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (with A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H25.
Subgoal 3.14.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_3 to H19 H26.
Subgoal 3.14.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H27 : (exists JJ, adj JJ (with A1 B1) G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 (with A1 B1) G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H27.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H28 H21.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H23 H4 H31.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H30.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H36.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H37 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_2_is_list to H19.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H37 : is_list LL
H38 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H37 *H38.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H33.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H40 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_2_is_list to H20.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H40 : is_list D7
H41 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H40 *H41.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H36.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H39 H43 H29.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H44 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H26 H18.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H46 H45.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H47 H5.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
H50 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H48 H50.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
H50 : perm U1 G2'
H51 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
H50 : perm U1 G2'
H51 : merge G2' G1 M
H52 : merge D1' D5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply change_merge_order to H42 H52 H20.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
H50 : perm U1 G2'
H51 : merge G2' G1 M
H52 : merge D1' D5 D7
H53 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_sym to *H53.
Subgoal 3.14.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK JJ U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj JJ (with A1 B1) G1'
H29 : merge JJ G2'1 KK
H30 : adj JJ A2 U
H31 : adj U (with A1 B1) G5
H32 : merge U G1 G7
H33 : merge D5 D1' D7
H34 : prove G7 D7
H35 : adj LL A2 G7
H36 : merge JJ G1 LL
H39 : merge LL G2'1 L
H42 : merge D7 D6 L1
H43 : merge G1 JJ LL
H45 : merge KK G1 L
H46 : adj KK (par A2 B2) U1
H47 : adj U1 (with A1 B1) G2
H48 : merge U1 G1 M
H49 : adj L (par A2 B2) M
H50 : perm U1 G2'
H51 : merge G2' G1 M
H52 : merge D1' D5 D7
H54 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H51, apply H54), unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G7, G2 = G6, G1' = LL, G2' = G2'1, D1 = D7, D2 = D6] split(split(split(split(split(split(apply H49, apply H39), apply H42), apply H35), apply H22), apply H34), apply H24))).
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H28 H22.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H24 H4 H31.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H30.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H36.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H37 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H19.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H37 : is_list LL
H38 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H37 *H38.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H33.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H40 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_1_is_list to H20.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H40 : is_list D7
H41 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H40 *H41.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H36.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H42.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H29.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H39 H43 H45.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H46 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to *H46.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H26 H18.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H48 H47.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H49 H5.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H50 H52.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H42 H54 H55.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H56 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to *H56.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H39.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_sym to H44.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 3.14.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

18 other subgoals.

cut_admissibility < split.
Subgoal 3.14.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 merge G2' G1 M

20 other subgoals.

cut_admissibility < search.
Witness: apply H53.
Subgoal 3.14.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 merge D2 D1' L1

19 other subgoals.

cut_admissibility < search.
Witness: apply H57.
Subgoal 3.14.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 prove M L1

18 other subgoals.

cut_admissibility < unfold 9.
Subgoal 3.14.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

18 other subgoals.

cut_admissibility < exists A2, B2, L.
Subgoal 3.14.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A2 B2) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G1 /\ adj G2' B2 G2 /\ prove G1 D1 /\
   prove G2 D2

18 other subgoals.

cut_admissibility < exists G5, G7, G1', LL.
Subgoal 3.14.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 exists D1 D2, adj L (par A2 B2) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A2 G5 /\ adj LL B2 G7 /\ prove G5 D1 /\ prove G7 D2

18 other subgoals.

cut_admissibility < exists D5, D7.
Subgoal 3.14.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 G1'
           G2'1 D5 D6 KK KK1 U G7 D7 LL L L1 U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (par A2 B2) G2
H19 : merge G1' G2'1 G'
H20 : merge D5 D6 D2
H21 : adj G1' A2 G5
H22 : adj G2'1 B2 G6
H23 : prove G5 D5 ***
H24 : prove G6 D6 ***
H26 : adj KK (with A1 B1) G'
H28 : adj KK1 (with A1 B1) G2'1
H29 : merge G1' KK1 KK
H30 : adj KK1 B2 U
H31 : adj U (with A1 B1) G6
H32 : merge U G1 G7
H33 : merge D6 D1' D7
H34 : prove G7 D7
H35 : adj LL B2 G7
H36 : merge KK1 G1 LL
H39 : merge LL G1' L
H42 : merge D7 D5 L1
H43 : merge G1 KK1 LL
H44 : merge D5 D7 L1
H45 : merge KK1 G1' KK
H47 : merge KK G1 L
H48 : adj KK (par A2 B2) U1
H49 : adj U1 (with A1 B1) G2
H50 : merge U1 G1 M
H51 : adj L (par A2 B2) M
H52 : perm U1 G2'
H53 : merge G2' G1 M
H54 : merge D1' D6 D7
H55 : merge D6 D5 D2
H57 : merge D2 D1' L1
H58 : merge G1' LL L
H59 : merge D7 D5 L1
============================
 adj L (par A2 B2) M /\ merge G1' LL L /\ merge D5 D7 L1 /\ adj G1' A2 G5 /\
   adj LL B2 G7 /\ prove G5 D5 /\ prove G7 D7

18 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H51, apply H58), apply H44), apply H21), apply H35), apply H23), apply H34).
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G'
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H18 H5.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G'
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H20 : zero = with A1 B1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H20.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H19 H22.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
H24 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
H24 : is_list G2'
H25 : is_list G1
H26 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H24 H25.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
H24 : is_list G2'
H25 : is_list G1
H26 : is_list D1
H27 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H27 H21.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L L1 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
H24 : is_list G2'
H25 : is_list G1
H26 : is_list D1
H27 : merge G2' G1 L1
H28 : adj LL zero L1
H29 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 3.14.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 G' KK L L1 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' zero G2
H19 : is_list D2
H21 : adj KK zero G2'
H22 : is_list D1'
H23 : merge D2 D1' L
H24 : is_list G2'
H25 : is_list G1
H26 : is_list D1
H27 : merge G2' G1 L1
H28 : adj LL zero L1
H29 : merge KK G1 LL
H30 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = L] split(split(apply H27, apply H23), unfold(prove, 10, exists[G' = LL] split(apply H28, apply H30))).
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to H20 H21.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
H24 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_3_is_list to H18.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
H24 : is_list D1'
H25 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to H25 H24.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L L1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
H24 : is_list D1'
H25 : is_list D2
H26 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H26 H18.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L L1 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
H24 : is_list D1'
H25 : is_list D2
H26 : merge D2 D1' L1
H27 : adj LL top L1
H28 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 3.14.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 D'1 L L1 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 top D2
H19 : is_list G2
H20 : is_list G2'
H21 : is_list G1
H22 : is_list D1
H23 : merge G2' G1 L
H24 : is_list D1'
H25 : is_list D2
H26 : merge D2 D1' L1
H27 : adj LL top L1
H28 : merge D'1 D1' LL
H29 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H23, apply H26), unfold(prove, 11, exists[D' = LL] split(apply H27, apply H29))).
Subgoal 3.14.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H21 : with A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (with A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H21.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH to H6 H11 H20 H9 H19.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H23 H14.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
H26 : merge G' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
H26 : merge G' G1 G6
H27 : perm G' G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H27.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
H26 : merge G' G1 G6
H27 : perm G' G2'
H28 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to *H17.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
H26 : merge G' G1 G6
H27 : perm G' G2'
H28 : merge G2' G1 G6
H29 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H29.
Subgoal 3.14.1.12.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H23 : merge G' G3 G6
H24 : merge D2 D' D5
H25 : prove G6 D5
H26 : merge G' G1 G6
H27 : perm G' G2'
H28 : merge G2' G1 G6
H29 : perm D' D1'
H30 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G6, D3 = D5] split(split(apply H28, apply H30), apply H25).
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H22 H19.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H24.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H23.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL A2 G6
H29 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H22 H18.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL A2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_left to H30 H29.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL A2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H31 H5.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL A2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
H34 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H34.
Subgoal 3.14.1.12.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' A2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK A2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL A2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
H34 : perm U1 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H35, apply H26), unfold(prove, 12, exists[A = A2, B = B2, G' = LL, G1 = G6] split(split(apply H33, apply H28), apply H27))).
Subgoal 3.14.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H21 : with A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (with A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H21.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH to H7 H12 H20 H10 H19.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : perm G2' G'
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H26.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
H27 : merge G2' G4 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H27 H15.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
H27 : merge G2' G4 G6
H28 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H13.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
H27 : merge G2' G4 G6
H28 : merge G2' G1 G6
H29 : merge D2 D' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_sym to *H17.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
H27 : merge G2' G4 G6
H28 : merge G2' G1 G6
H29 : merge D2 D' D5
H30 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H29 H30.
Subgoal 3.14.1.13.1:

Variables: G1 D1 D1' G2 G2' D2 D' D2' D3 D4 G3 G4 A2 B2 G' G5 G6 D5
C <-- with A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A2 B2) D1
H5 : adj G2' (with A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (with A2 B2) D1
H9 : adj D' A2 D3
H10 : adj D2' B2 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H23 : merge G' G4 G6
H24 : merge D2 D2' D5
H25 : prove G6 D5
H26 : perm G' G2'
H27 : merge G2' G4 G6
H28 : merge G2' G1 G6
H29 : merge D2 D' D5
H30 : perm D' D1'
H31 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G6, D3 = D5] split(split(apply H28, apply H31), apply H25).
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H22 H19.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H24.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H23.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL B2 G6
H29 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H22 H18.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL B2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_left to H30 H29.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL B2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H31 H5.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL B2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
H34 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H34.
Subgoal 3.14.1.13.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G5 KK U G6
           D5 LL U1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (with A2 B2) G2
H19 : adj G' B2 G5
H20 : prove G5 D2 ***
H22 : adj KK (with A1 B1) G'
H23 : adj KK B2 U
H24 : adj U (with A1 B1) G5
H25 : merge U G1 G6
H26 : merge D2 D1' D5
H27 : prove G6 D5
H28 : adj LL B2 G6
H29 : merge KK G1 LL
H30 : adj KK (with A2 B2) U1
H31 : adj U1 (with A1 B1) G2
H32 : merge U1 G1 M
H33 : adj LL (with A2 B2) M
H34 : perm U1 G2'
H35 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H35, apply H26), unfold(prove, 13, exists[A = A2, B = B2, G' = LL, G1 = G6] split(split(apply H33, apply H28), apply H27))).
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D2'1 D5 D6
           G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (with A2 B2) D2
H19 : adj D'1 A2 D5
H20 : adj D2'1 B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D2'1 D'1
H24 : perm G5 G2
H25 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < rename D'1 to D5'.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D2'1 D5 D6
           G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D2'1 B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D2'1 D5'
H24 : perm G5 G2
H25 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < rename D2'1 to D6'.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H24 : perm G5 G2
H25 : perm G6 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H25 : perm G6 G2
H26 : perm G2 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_perm_result to H26 H5.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H25 : perm G6 G2
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H27.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H25 : perm G6 G2
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H30 H19.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H25 : perm G6 G2
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H25.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_perm_result to H34 H5.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H36 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H22 H4 H35.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H36 : perm G2' KK1
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H38 H20.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H28 : perm G2' KK
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H36 : perm G2' KK1
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H28.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H36 : perm G2' KK1
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H42.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H36 : perm G2' KK1
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to *H36.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H44.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H45 H43.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_2_is_list to H46.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H47 : is_list G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_refl to *H47.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H23.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H49 H33.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_2_is_list to H50.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H33.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < exists G7, M.
Subgoal 3.14.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 merge G2' G1 G7 /\ merge D2 D1' M /\ prove G7 M

13 other subgoals.

cut_admissibility < split.
Subgoal 3.14.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 merge G2' G1 G7

15 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 3.14.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 merge D2 D1' M

14 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 3.14.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 prove G7 M

13 other subgoals.

cut_admissibility < unfold 14.
Subgoal 3.14.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G7 /\
   perm G2 G7

13 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 3.14.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D1 /\
   adj D2' B2 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G7 /\ perm G2 G7

13 other subgoals.

cut_admissibility < exists LL1, D7, D8.
Subgoal 3.14.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 exists G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D7 /\ adj LL1 B2 D8 /\
   prove G1 D7 /\ prove G2 D8 /\ perm LL1 LL /\ perm G1 G7 /\ perm G2 G7

13 other subgoals.

cut_admissibility < exists G7, G8.
Subgoal 3.14.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D5' D6' D5 D6
           G5 G6 KK G7 D7 LL KK1 G8 D8 LL1 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D5' (with A2 B2) D2
H19 : adj D5' A2 D5
H20 : adj D6' B2 D6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm D6' D5'
H26 : perm G2 G5
H27 : adj KK (with A1 B1) G5
H29 : merge KK G1 G7
H30 : merge D5 D1' D7
H31 : prove G7 D7
H32 : adj LL A2 D7
H33 : merge D5' D1' LL
H34 : perm G2 G6
H35 : adj KK1 (with A1 B1) G6
H37 : merge KK1 G1 G8
H38 : merge D6 D1' D8
H39 : prove G8 D8
H40 : adj LL1 B2 D8
H41 : merge D6' D1' LL1
H42 : perm KK G2'
H43 : merge G2' G1 G7
H44 : perm KK1 G2'
H45 : merge G2' G1 G8
H46 : perm G8 G7
H48 : perm G7 G7
H49 : merge D5' D1' LL1
H50 : perm LL1 LL
H51 : is_list LL
H52 : merge D2 D1' M
H53 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M /\ adj LL A2 D7 /\ adj LL1 B2 D8 /\ prove G7 D7 /\
   prove G8 D8 /\ perm LL1 LL /\ perm G7 G7 /\ perm G8 G7

13 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H53, apply H32), apply H40), apply H31), apply H39), apply H50), apply H48), apply H46).
Subgoal 3.14.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 A2 D5
H20 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H5.
Subgoal 3.14.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 A2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H19.
Subgoal 3.14.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 A2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
H24 : adj LL A2 D6
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H25.
Subgoal 3.14.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6 LL
           M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 A2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
H24 : adj LL A2 D6
H25 : merge D'1 D1' LL
H26 : merge D2 D1' M
H27 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H21, apply H26), unfold(prove, 15, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H27, apply H24), apply H23))).
Subgoal 3.14.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 B2 D5
H20 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H5.
Subgoal 3.14.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 B2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H19.
Subgoal 3.14.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 B2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
H24 : adj LL B2 D6
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_left to H18 H25.
Subgoal 3.14.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 D'1 D5 G5 D6 LL
           M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj D'1 (plus A2 B2) D2
H19 : adj D'1 B2 D5
H20 : prove G2 D5 ***
H21 : merge G2' G1 G5
H22 : merge D5 D1' D6
H23 : prove G5 D6
H24 : adj LL B2 D6
H25 : merge D'1 D1' LL
H26 : merge D2 D1' M
H27 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G5, D3 = M] split(split(apply H21, apply H26), unfold(prove, 16, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H27, apply H24), apply H23))).
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G' G2'1 G5 G6
           D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G' (plus A2 B2) G2
H19 : adj G' A2 G5
H20 : adj G2'1 B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G2'1 G'
H24 : perm D5 D2
H25 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < rename G' to G5'.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G2'1 G5 G6
           D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G2'1 B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G2'1 G5'
H24 : perm D5 D2
H25 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < rename G2'1 to G6'.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H18.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
H26 : with A1 B1 = plus A2 B2 /\ perm G2' G5' \/
        (exists KK, adj KK (with A1 B1) G5')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H26.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H27 H19.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H21 H4 H29.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H30 H28.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H23 : perm G6' G5'
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to *H23.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_perm_result to H35 H27.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H36 H20.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H22 H4 H39.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H40 H38.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H34 H37.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H44 H45.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H27 H18.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_left to H47 H34.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H48 H5.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H49 H51.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H31 H24.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H25.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_perm_det to H54 H53.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_1_is_list to H55.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H56 : is_list D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_refl to *H56.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_sym to H55.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < exists M, D8.
Subgoal 3.14.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 merge G2' G1 M /\ merge D2 D1' D8 /\ prove M D8

10 other subgoals.

cut_admissibility < split.
Subgoal 3.14.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 merge G2' G1 M

12 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 3.14.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 merge D2 D1' D8

11 other subgoals.

cut_admissibility < search.
Witness: apply H54.
Subgoal 3.14.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 prove M D8

10 other subgoals.

cut_admissibility < unfold 17.
Subgoal 3.14.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D8 /\
   perm D2 D8

10 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 3.14.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G1 /\
   adj G2' B2 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D8 /\ perm D2 D8

10 other subgoals.

cut_admissibility < exists LL1, G7, G8.
Subgoal 3.14.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 exists D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G7 /\ adj LL1 B2 G8 /\
   prove G7 D1 /\ prove G8 D2 /\ perm LL1 LL /\ perm D1 D8 /\ perm D2 D8

10 other subgoals.

cut_admissibility < exists D7, D8.
Subgoal 3.14.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D2' D3 D4 G3 G4 A2 B2 G5' G6' G5 G6
           D5 D6 KK U G7 D7 LL KK1 U1 G8 D8 LL1 U2 M
C <-- with A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A1 B1) D1
H5 : adj G2' (with A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : perm D1' D'
H18 : adj G5' (plus A2 B2) G2
H19 : adj G5' A2 G5
H20 : adj G6' B2 G6
H21 : prove G5 D5 ***
H22 : prove G6 D6 ***
H24 : perm D5 D2
H25 : perm D6 D2
H27 : adj KK (with A1 B1) G5'
H28 : adj KK A2 U
H29 : adj U (with A1 B1) G5
H30 : merge U G1 G7
H31 : merge D5 D1' D7
H32 : prove G7 D7
H33 : adj LL A2 G7
H34 : merge KK G1 LL
H35 : perm G5' G6'
H36 : adj KK1 (with A1 B1) G6'
H37 : perm KK KK1
H38 : adj KK1 B2 U1
H39 : adj U1 (with A1 B1) G6
H40 : merge U1 G1 G8
H41 : merge D6 D1' D8
H42 : prove G8 D8
H43 : adj LL1 B2 G8
H44 : merge KK1 G1 LL1
H45 : merge KK1 G1 LL
H46 : perm LL1 LL
H47 : adj KK (plus A2 B2) U2
H48 : adj U2 (with A1 B1) G2
H49 : merge U2 G1 M
H50 : adj LL (plus A2 B2) M
H51 : perm U2 G2'
H52 : merge G2' G1 M
H53 : merge D2 D1' D7
H54 : merge D2 D1' D8
H55 : perm D8 D7
H57 : perm D8 D8
H58 : perm D7 D8
============================
 adj LL (plus A2 B2) M /\ adj LL A2 G7 /\ adj LL1 B2 G8 /\ prove G7 D7 /\
   prove G8 D8 /\ perm LL1 LL /\ perm D7 D8 /\ perm D8 D8

10 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H50, apply H33), apply H43), apply H32), apply H42), apply H46), apply H58), apply H57).
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_sym to *H13.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H17.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H26 H10.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H29 H5.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H31 H28.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H14.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H30 H15.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H35.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_2_is_list to H37.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H38 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_refl to *H38.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H27.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H40.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H17 H8.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H42 H24.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result to H43 H4.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H44 H46.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 3.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

9 other subgoals.

cut_admissibility < split.
Subgoal 3.14.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5

11 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 3.14.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge D2 D1' M

10 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 3.14.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G5 M

9 other subgoals.

cut_admissibility < unfold 14.
Subgoal 3.14.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

9 other subgoals.

cut_admissibility < exists A1, B1, LL.
Subgoal 3.14.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A1 B1) M /\ adj LL A1 D1 /\
   adj D2' B1 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G5 /\ perm G2 G5

9 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 3.14.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

9 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 3.14.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (with A B) D'
H18 : adj KK A1 U
H19 : adj U (with A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D2'
H26 : adj KK1 (with A B) D2'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (with A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (with A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

9 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H45, apply H23), apply H33), apply H22), apply H32), apply H41), apply H39), apply H37).
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H11 : with A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H11.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 3.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK A1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 15, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H11 : with A B = plus A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (with A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < case H11.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 3.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (with A B) D'
H13 : adj KK B1 U
H14 : adj U (with A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (with A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 16, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G2'1 G3 G4 D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G2'1 B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G2'1 G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to *H14.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H15 : perm D4 D1
H16 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_perm_result to H16 H4.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H9.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to *H15.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_perm_result to H24 H4.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H25 H5.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H27 H10.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H31 H13.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H23.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H23.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H36.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to *H26.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H38.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H37.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_1_is_list to H40.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H41 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_refl to *H41.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to H40.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < exists M, D6.
Subgoal 3.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M /\ merge D2 D1' D6 /\ prove M D6

6 other subgoals.

cut_admissibility < split.
Subgoal 3.17.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M

8 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 3.17.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge D2 D1' D6

7 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 3.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 prove M D6

6 other subgoals.

cut_admissibility < unfold 17.
Subgoal 3.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D6 /\
   perm D2 D6

6 other subgoals.

cut_admissibility < exists A1, B1, LL.
Subgoal 3.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G1 /\
   adj G2' B1 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D6 /\ perm D2 D6

6 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 3.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D6 /\ perm D2 D6

6 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 3.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- with A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (with A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (with A B) D1
H5 : adj G2' (with A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H16 : perm D1 D3
H17 : adj KK (with A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (with A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D6 /\ perm D6 D6

6 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H35, apply H22), apply H30), apply H21), apply H29), apply H33), apply H43), apply H42).
Subgoal 4:

Variables: G1 D1 D1' G2 G2' D2 B A
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 4.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H9 : adj nil (atom A1) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H9.
Subgoal 4.1:

Variables: G1 D1' G2 G2' D2 B A A1
C <-- par A B
D1 <-- atom A1 :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) (atom A1 :: nil)
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H4.
Subgoal 4.1:

Variables: G1 G2 G2' D2 B A A1 K
C <-- par A B
D1 <-- atom A1 :: nil
D1' <-- atom A1 :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 (atom A1 :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil (atom A1) G1
H10 : formula (atom A1)
H11 : is_list nil
H12 : formula (atom A1)
H13 : adj K (par A B) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A1 :: K) D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H13.
Subgoal 4.2:

Variables: D1 D1' G2 G2' D2 B A
C <-- par A B
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H8.
Subgoal 4.2:

Variables: D1' G2 G2' D2 B A
C <-- par A B
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) (one :: nil)
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H4.
Subgoal 4.2:

Variables: G2 G2' D2 B A K
C <-- par A B
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H9 : formula one
H10 : is_list nil
H11 : formula one
H12 : adj K (par A B) nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H12.
Subgoal 4.3:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 4.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H10.
Subgoal 4.3:

Variables: G1 D1 D1' G2 G2' D2 B A G' G3 D3 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' one G1
H9 : prove G' D1 **
H10 : merge G2' G' G3
H11 : merge D2 D1' D3
H12 : prove G3 D3
H13 : merge G2' G1 M
H14 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H13, apply H11), unfold(prove, 3, exists[G' = G3] split(apply H14, apply H12))).
Subgoal 4.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H4 H5.
Subgoal 4.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H9.
Subgoal 4.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 4.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H18.
Subgoal 4.4:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G5 D3 LL LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (tensor A1 B1) G1
H9 : adj G4 A1 G3
H10 : adj G' B1 G4
H11 : prove G3 D1 **
H12 : merge G2' G3 G5
H13 : merge D2 D1' D3
H14 : prove G5 D3
H15 : adj LL A1 G5
H16 : merge G2' G4 LL
H17 : adj LL1 B1 LL
H18 : merge G2' G' LL1
H19 : merge G2' G1 M
H20 : adj LL1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H19, apply H13), unfold(prove, 4, exists[A = A1, B = B1, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H20, apply H15), apply H17), apply H14))).
Subgoal 4.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : par A B = tensor A1 B1 /\ perm D1' D' \/
        (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H15.
Subgoal 4.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_3 to H9 H16.
Subgoal 4.5:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H17 : (exists JJ, adj JJ (par A B) D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 (par A B) D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H17.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H18 H11.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H21 H5.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H27 : is_list G5
H28 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H27 *H28.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H10.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_1_is_list to H12.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply change_merge_order to H33 H26 H19.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (par A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (par A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 4.5.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj JJ (par A B) D1'1
H19 : merge JJ D2' KK
H20 : adj JJ A1 U
H21 : adj U (par A B) D3
H22 : merge G2' G3 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL A1 D5
H26 : merge D2 JJ LL
H29 : merge G5 G4 L
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B1) U1
H36 : adj U1 (par A B) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B1) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H40), unfold(prove, 5, exists[A = A1, B = B1, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H29), apply H25), apply H12), apply H24), apply H14))).
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H18 H12.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H21 H5.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H23 H20.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H27 H28.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H29.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H10.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H29 H22 H31.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H26.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to H33 H34.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H35 H26 H37.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H16 H8.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H39 H38.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H40 H4.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_2 to H41 H43.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < exists L, M.
Subgoal 4.5.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

17 other subgoals.

cut_admissibility < split.
Subgoal 4.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge G2' G1 L

19 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 4.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 merge D2 D1' M

18 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 4.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 prove L M

17 other subgoals.

cut_admissibility < unfold 5.
Subgoal 4.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

17 other subgoals.

cut_admissibility < exists A1, B1, L1.
Subgoal 4.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A1 B1) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A1 D1 /\ adj D2' B1 D2 /\ prove G1 D1 /\
   prove G2 D2

17 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 4.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 exists G1 G2, adj L1 (tensor A1 B1) M /\ merge D1'1 LL L1 /\
   merge G1 G2 L /\ adj D1'1 A1 D3 /\ adj LL B1 D5 /\ prove G1 D3 /\
   prove G2 D5

17 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 4.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5
           D5 LL L L1 U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (tensor A1 B1) D1
H9 : merge D1'1 D2' D'
H10 : merge G3 G4 G1
H11 : adj D1'1 A1 D3
H12 : adj D2' B1 D4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D'
H18 : adj KK1 (par A B) D2'
H19 : merge D1'1 KK1 KK
H20 : adj KK1 B1 U
H21 : adj U (par A B) D4
H22 : merge G2' G4 G5
H23 : merge D2 U D5
H24 : prove G5 D5
H25 : adj LL B1 D5
H26 : merge D2 KK1 LL
H27 : is_list G5
H28 : is_list G3
H29 : merge G5 G3 L
H30 : merge G3 G5 L
H31 : merge G4 G3 G1
H32 : merge G2' G1 L
H33 : is_list LL
H34 : is_list D1'1
H35 : merge LL D1'1 L1
H36 : merge D1'1 LL L1
H37 : merge KK1 D1'1 KK
H38 : merge D2 KK L1
H39 : adj KK (tensor A1 B1) U1
H40 : adj U1 (par A B) D1
H41 : merge D2 U1 M
H42 : adj L1 (tensor A1 B1) M
H43 : perm U1 D1'
H44 : merge D2 D1' M
============================
 adj L1 (tensor A1 B1) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A1 D3 /\ adj LL B1 D5 /\ prove G3 D3 /\ prove G5 D5

17 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H42, apply H36), apply H30), apply H11), apply H25), apply H13), apply H24).
Subgoal 4.6:

Variables: G1 D1' G2 G2' D2 B A
C <-- par A B
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) nil
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H4.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H10 : par A B = bot /\ perm D1' D' \/ (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H10.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H11 H5.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H15 H13.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (par A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H16 H4.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (par A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H17 H19.
Subgoal 4.7:

Variables: G1 D1 D1' G2 G2' D2 B A D' KK G3 D3 U M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' bot D1
H9 : prove G1 D' **
H11 : adj KK (par A B) D'
H12 : merge G2' G1 G3
H13 : merge D2 KK D3
H14 : prove G3 D3
H15 : adj KK bot U
H16 : adj U (par A B) D1
H17 : merge D2 U M
H18 : adj D3 bot M
H19 : perm U D1'
H20 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H20), unfold(prove, 7, exists[D' = D3] split(apply H18, apply H14))).
Subgoal 4.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.8:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H12 : par A B = par A1 B1 /\ perm D1' D' \/ (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H12.
Subgoal 4.8.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 4.8.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj nil (atom A2) G2
H15 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H14.
Subgoal 4.8.1.1:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 D4 A2
C <-- par A1 B1
G2 <-- atom A2 :: nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) (atom A2 :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H15 : adj nil (atom A2) D2
H16 : formula (atom A2)
H17 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H5.
Subgoal 4.8.1.1:

Variables: G1 D1 D1' D2 A1 B1 D' D3 D4 A2 K
C <-- par A1 B1
G2 <-- atom A2 :: nil
G2' <-- atom A2 :: K
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (atom A2 :: nil) D2 @@@
H4 : adj D1' (par A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H15 : adj nil (atom A2) D2
H16 : formula (atom A2)
H17 : is_list nil
H18 : formula (atom A2)
H19 : adj K (par A1 B1) nil
============================
 exists G3 D3, merge (atom A2 :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H19.
Subgoal 4.8.1.2:

Variables: G1 D1 D1' G2' D2 A1 B1 D' D3 D4
C <-- par A1 B1
G2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) nil
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < case H5.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G'
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G'
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H16 : par A1 B1 = one /\ perm G2' G' \/ (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H16.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H17.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK G3 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
H18 : merge KK G1 G3
H19 : merge D2 D1' D5
H20 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_swap to H17 H14.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK G3 D5 U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
H18 : merge KK G1 G3
H19 : merge D2 D1' D5
H20 : prove G3 D5
H21 : adj KK one U
H22 : adj U (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply add_to_merge_left to H21 H18.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK G3 D5 U M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
H18 : merge KK G1 G3
H19 : merge D2 D1' D5
H20 : prove G3 D5
H21 : adj KK one U
H22 : adj U (par A1 B1) G2
H23 : merge U G1 M
H24 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply adj_same_result to H22 H5.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK G3 D5 U M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
H18 : merge KK G1 G3
H19 : merge D2 D1' D5
H20 : prove G3 D5
H21 : adj KK one U
H22 : adj U (par A1 B1) G2
H23 : merge U G1 M
H24 : adj G3 one M
H25 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H25.
Subgoal 4.8.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' KK G3 D5 U M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' one G2
H15 : prove G' D2 ***
H17 : adj KK (par A1 B1) G'
H18 : merge KK G1 G3
H19 : merge D2 D1' D5
H20 : prove G3 D5
H21 : adj KK one U
H22 : adj U (par A1 B1) G2
H23 : merge U G1 M
H24 : adj G3 one M
H25 : perm U G2'
H26 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H26, apply H19), unfold(prove, 3, exists[G' = G3] split(apply H24, apply H20))).
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H18 : par A1 B1 = tensor A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H18.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_swap to H19 H16.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_swap to H21 H15.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H23.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H20.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
           LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
H29 : adj LL1 B2 LL
H30 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_swap to H19 H14.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
           LL1 U2
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
H29 : adj LL1 B2 LL
H30 : merge KK G1 LL1
H31 : adj KK (tensor A2 B2) U2
H32 : adj U2 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply add_to_merge_left to H31 H30.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
           LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
H29 : adj LL1 B2 LL
H30 : merge KK G1 LL1
H31 : adj KK (tensor A2 B2) U2
H32 : adj U2 (par A1 B1) G2
H33 : merge U2 G1 M
H34 : adj LL1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_same_result to H32 H5.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
           LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
H29 : adj LL1 B2 LL
H30 : merge KK G1 LL1
H31 : adj KK (tensor A2 B2) U2
H32 : adj U2 (par A1 B1) G2
H33 : merge U2 G1 M
H34 : adj LL1 (tensor A2 B2) M
H35 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H35.
Subgoal 4.8.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 KK U U1 G5 D5 LL
           LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (tensor A2 B2) G2
H15 : adj G4 A2 G3
H16 : adj G' B2 G4
H17 : prove G3 D2 ***
H19 : adj KK (par A1 B1) G'
H20 : adj KK B2 U
H21 : adj U (par A1 B1) G4
H22 : adj U A2 U1
H23 : adj U1 (par A1 B1) G3
H24 : merge U1 G1 G5
H25 : merge D2 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge U G1 LL
H29 : adj LL1 B2 LL
H30 : merge KK G1 LL1
H31 : adj KK (tensor A2 B2) U2
H32 : adj U2 (par A1 B1) G2
H33 : merge U2 G1 M
H34 : adj LL1 (tensor A2 B2) M
H35 : perm U2 G2'
H36 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H36, apply H25), unfold(prove, 4, exists[A = A2, B = B2, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H34, apply H27), apply H29), apply H26))).
Subgoal 4.8.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_unadj_3 to H16 H5.
Subgoal 4.8.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H21 : (exists JJ, adj JJ (par A1 B1) G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK (par A1 B1) G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H21.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H22.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H17.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H29 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_2_is_list to H16.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H29 : is_list G5
H30 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H24 : merge JJ G1 G5
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply change_merge_order to H31 H33 H23.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H36 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H36 : is_list LL
H37 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to *H36 *H37.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to H38.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H28 : merge D1'1 D1' LL
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
H39 : merge D2' LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
H39 : merge D2' LL L1
H40 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply change_merge_order to H38 H40 H15.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
H39 : merge D2' LL L1
H40 : merge D1' D1'1 LL
H41 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply add_to_merge_right to H14 H41.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
H39 : merge D2' LL L1
H40 : merge D1' D1'1 LL
H41 : merge D1' D'1 L1
H42 : merge D1' D2 M
H43 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to H42.
Subgoal 4.8.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           JJ G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj JJ (par A1 B1) G3
H23 : merge JJ G4 G2'
H25 : merge D5 D1' D7
H26 : prove G5 D7
H27 : adj LL A2 D7
H31 : merge G5 G4 L
H32 : merge G4 G5 L
H33 : merge G1 JJ G5
H34 : merge G1 G2' L
H35 : merge G2' G1 L
H38 : merge LL D2' L1
H39 : merge D2' LL L1
H40 : merge D1' D1'1 LL
H41 : merge D1' D'1 L1
H42 : merge D1' D2 M
H43 : adj L1 (tensor A2 B2) M
H44 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H35, apply H44), unfold(prove, 5, exists[A = A2, B = B2, D' = L1, D1 = D7, D2 = D6, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H43, apply H38), apply H31), apply H27), apply H18), apply H26), apply H20))).
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H22.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_unadj_1 to H25 H18.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H29 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_1_is_list to H16.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H29 : is_list G5
H30 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H23.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply change_merge_order to H31 H33 H34.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H37 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H37 : is_list LL
H38 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to *H37 *H38.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H39.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H28.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply change_merge_order to H39 H41 H42.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H43 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H43.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H44.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H44.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < exists L, M.
Subgoal 4.8.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

27 other subgoals.

cut_admissibility < split.
Subgoal 4.8.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 merge G2' G1 L

29 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 4.8.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 merge D2 D1' M

28 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 4.8.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 prove L M

27 other subgoals.

cut_admissibility < unfold 5.
Subgoal 4.8.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

27 other subgoals.

cut_admissibility < exists A2, B2, L1.
Subgoal 4.8.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A2 B2) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A2 D1 /\ adj D2' B2 D2 /\ prove G1 D1 /\
   prove G2 D2

27 other subgoals.

cut_admissibility < exists D5, D7, D1'1, LL.
Subgoal 4.8.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 D1'1 D2' G3 G4
           KK G5 D7 LL L L1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (tensor A2 B2) D2
H15 : merge D1'1 D2' D'1
H16 : merge G3 G4 G2
H17 : adj D1'1 A2 D5
H18 : adj D2' B2 D6
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G4
H23 : merge G3 KK G2'
H24 : merge KK G1 G5
H25 : merge D6 D1' D7
H26 : prove G5 D7
H27 : adj LL B2 D7
H28 : merge D2' D1' LL
H31 : merge G5 G3 L
H32 : merge G3 G5 L
H33 : merge G1 KK G5
H34 : merge KK G3 G2'
H35 : merge G1 G2' L
H36 : merge G2' G1 L
H39 : merge LL D1'1 L1
H40 : merge D1'1 LL L1
H41 : merge D1' D2' LL
H42 : merge D2' D1'1 D'1
H44 : merge D'1 D1' L1
H45 : merge D2 D1' M
H46 : adj L1 (tensor A2 B2) M
H47 : merge D1' D'1 L1
H48 : merge G3 G5 L
============================
 exists G1 G2, adj L1 (tensor A2 B2) M /\ merge D1'1 LL L1 /\
   merge G1 G2 L /\ adj D1'1 A2 D5 /\ adj LL B2 D7 /\ prove G1 D5 /\
   prove G2 D7

27 other subgoals.

cut_admissibility < search.
Witness: exists[G1 = G3, G2 = G5] split(split(split(split(split(split(apply H46, apply H40), apply H32), apply H17), apply H27), apply H19), apply H26).
Subgoal 4.8.1.6:

Variables: G1 D1 D1' G2 G2' A1 B1 D' D3 D4
C <-- par A1 B1
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H14.
Subgoal 4.8.1.6:

Variables: G1 D1 D1' G2' A1 B1 D' D3 D4
C <-- par A1 B1
G2 <-- bot :: nil
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) (bot :: nil)
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H15 : formula bot
H16 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H5.
Subgoal 4.8.1.6:

Variables: G1 D1 D1' A1 B1 D' D3 D4 K
C <-- par A1 B1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (par A1 B1) D1
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H15 : formula bot
H16 : is_list nil
H17 : formula bot
H18 : adj K (par A1 B1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H18.
Subgoal 4.8.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 bot D2
H15 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H5.
Subgoal 4.8.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 G3 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 bot D2
H15 : prove G2 D'1 ***
H16 : merge G2' G1 G3
H17 : merge D'1 D1' D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H17.
Subgoal 4.8.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 G3 D5 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 bot D2
H15 : prove G2 D'1 ***
H16 : merge G2' G1 G3
H17 : merge D'1 D1' D5
H18 : prove G3 D5
H19 : merge D2 D1' M
H20 : adj D5 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H19), unfold(prove, 7, exists[D' = D5] split(apply H20, apply H18))).
Subgoal 4.8.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (par A2 B2) D2
H15 : adj D6 A2 D5
H16 : adj D'1 B2 D6
H17 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H5.
Subgoal 4.8.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 G3 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (par A2 B2) D2
H15 : adj D6 A2 D5
H16 : adj D'1 B2 D6
H17 : prove G2 D5 ***
H18 : merge G2' G1 G3
H19 : merge D5 D1' D7
H20 : prove G3 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H19 H15.
Subgoal 4.8.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 G3 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (par A2 B2) D2
H15 : adj D6 A2 D5
H16 : adj D'1 B2 D6
H17 : prove G2 D5 ***
H18 : merge G2' G1 G3
H19 : merge D5 D1' D7
H20 : prove G3 D7
H21 : adj LL A2 D7
H22 : merge D6 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H16.
Subgoal 4.8.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 G3 D7 LL LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (par A2 B2) D2
H15 : adj D6 A2 D5
H16 : adj D'1 B2 D6
H17 : prove G2 D5 ***
H18 : merge G2' G1 G3
H19 : merge D5 D1' D7
H20 : prove G3 D7
H21 : adj LL A2 D7
H22 : merge D6 D1' LL
H23 : adj LL1 B2 LL
H24 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H24.
Subgoal 4.8.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 D6 G3 D7 LL LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (par A2 B2) D2
H15 : adj D6 A2 D5
H16 : adj D'1 B2 D6
H17 : prove G2 D5 ***
H18 : merge G2' G1 G3
H19 : merge D5 D1' D7
H20 : prove G3 D7
H21 : adj LL A2 D7
H22 : merge D6 D1' LL
H23 : adj LL1 B2 LL
H24 : merge D'1 D1' LL1
H25 : merge D2 D1' M
H26 : adj LL1 (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H18, apply H25), unfold(prove, 8, exists[A = A2, B = B2, D' = LL1, D1 = D7, D2 = LL] split(split(split(apply H26, apply H21), apply H23), apply H20))).
Subgoal 4.8.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H21 : par A1 B1 = par A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H21.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH to H6 H11 H19 H9 H17.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_2 to H24 H10.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H27 : merge D5 D' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH to H7 H25 H20 H26 H18.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H27 : merge D5 D' LL
H28 : merge G2'1 G5 G6
H29 : merge D6 LL D8
H30 : prove G6 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H27 : merge D5 D' LL
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H16.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H13.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H35.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H28 : merge G2'1 G5 G6
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H23 : merge G1' G1 G5
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
H38 : merge G1 G1' G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply change_merge_order to H37 H38 H15.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : perm G2' G'
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
H38 : merge G1 G1' G5
H39 : merge G1 G' G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_sym to *H22.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
H38 : merge G1 G1' G5
H39 : merge G1 G' G6
H40 : perm G' G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_2 to H39 H40.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
H38 : merge G1 G1' G5
H39 : merge G1 G' G6
H40 : perm G' G2'
H41 : merge G1 G2' G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H41.
Subgoal 4.8.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6 G5 D7
           LL G6 D8
C <-- par A2 B2
B <-- B2
A <-- A2
A1 <-- A2
B1 <-- B2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A2 B2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A2 B2) D1
H5 : adj G2' (par A2 B2) G2
H6 : formula A2 *
H7 : formula B2 *
H8 : adj D' (par A2 B2) D1
H9 : adj D4 A2 D3
H10 : adj D' B2 D4
H11 : prove G1 D3 **
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H24 : merge D5 D4 D7
H25 : prove G5 D7
H26 : adj LL B2 D7
H30 : prove G6 D8
H31 : merge LL D6 D8
H32 : merge D' D5 LL
H33 : merge D' D2 D8
H34 : merge D2 D' D8
H35 : perm D' D1'
H36 : merge D2 D1' D8
H37 : merge G5 G2'1 G6
H38 : merge G1 G1' G5
H39 : merge G1 G' G6
H40 : perm G' G2'
H42 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G6, D3 = D8] split(split(apply H42, apply H36), apply H30).
Subgoal 4.8.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_3 to H15 H22.
Subgoal 4.8.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H23 : (exists JJ, adj JJ (par A1 B1) G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 (par A1 B1) G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H23.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H24 H17.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H19 H4 H27.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H26.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H32 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_3_is_list to H32.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H32 : merge JJ G1 LL
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_2_is_list to H15.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H32 : merge JJ G1 LL
H33 : is_list LL
H34 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_exists to *H33 *H34.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H32 : merge JJ G1 LL
H35 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply change_merge_order to H35 H36 H25.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H37 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H37.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H22 H14.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H39 H38.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result to H40 H5.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H43.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_2_is_list to H16.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H45 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_3_is_list to H29.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H45 : is_list D6
H46 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_exists to *H46 *H45.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H29 : merge D5 D1' D7
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H47 : merge D7 D6 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H47 : merge D7 D6 L1
H48 : merge D1' D5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply change_merge_order to H47 H48 H16.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H47 : merge D7 D6 L1
H48 : merge D1' D5 D7
H49 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_sym to H49.
Subgoal 4.8.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK JJ U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj JJ (par A1 B1) G1'
H25 : merge JJ G2'1 KK
H26 : adj JJ A2 U
H27 : adj U (par A1 B1) G3
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL A2 G5
H35 : merge LL G2'1 L
H36 : merge G1 JJ LL
H38 : merge KK G1 L
H39 : adj KK (par A2 B2) U1
H40 : adj U1 (par A1 B1) G2
H41 : merge U1 G1 M
H42 : adj L (par A2 B2) M
H43 : perm U1 G2'
H44 : merge G2' G1 M
H47 : merge D7 D6 L1
H48 : merge D1' D5 D7
H49 : merge D1' D2 L1
H50 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H44, apply H50), unfold(prove, 9, exists[A = A2, B = B2, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D7, D2 = D6] split(split(split(split(split(split(apply H42, apply H35), apply H47), apply H31), apply H18), apply H30), apply H20))).
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H24 H18.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H20 H4 H27.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H28 H26.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H32 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H32.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H32 : merge KK1 G1 LL
H33 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_1_is_list to H15.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H32 : merge KK1 G1 LL
H33 : is_list LL
H34 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H33 *H34.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H32 : merge KK1 G1 LL
H35 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H25 : merge G1' KK1 KK
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H35 H36 H37.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to H38.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H22 H14.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H40 H39.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result to H41 H5.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply perm_merge_1 to H42 H44.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_1_is_list to H16.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H29.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H46 : is_list D5
H47 : is_list D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H47 *H46.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H29 : merge D6 D1' D7
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H16 : merge D5 D6 D2
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to *H16.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply change_merge_order to H48 H49 H50.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to H51.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to H35.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_sym to H48.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 4.8.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

23 other subgoals.

cut_admissibility < split.
Subgoal 4.8.1.9.2.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 merge G2' G1 M

25 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 4.8.1.9.2.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 merge D2 D1' L1

24 other subgoals.

cut_admissibility < search.
Witness: apply H52.
Subgoal 4.8.1.9.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 prove M L1

23 other subgoals.

cut_admissibility < unfold 9.
Subgoal 4.8.1.9.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

23 other subgoals.

cut_admissibility < exists A2, B2, L.
Subgoal 4.8.1.9.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A2 B2) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G1 /\ adj G2' B2 G2 /\ prove G1 D1 /\
   prove G2 D2

23 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 4.8.1.9.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 exists D1 D2, adj L (par A2 B2) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A2 G3 /\ adj LL B2 G5 /\ prove G3 D1 /\ prove G5 D2

23 other subgoals.

cut_admissibility < exists D5, D7.
Subgoal 4.8.1.9.2.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 G4 G1' G2'1 D5 D6
           KK KK1 U G5 D7 LL L U1 M L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (par A2 B2) G2
H15 : merge G1' G2'1 G'
H17 : adj G1' A2 G3
H18 : adj G2'1 B2 G4
H19 : prove G3 D5 ***
H20 : prove G4 D6 ***
H22 : adj KK (par A1 B1) G'
H24 : adj KK1 (par A1 B1) G2'1
H26 : adj KK1 B2 U
H27 : adj U (par A1 B1) G4
H28 : merge U G1 G5
H30 : prove G5 D7
H31 : adj LL B2 G5
H35 : merge LL G1' L
H36 : merge G1 KK1 LL
H37 : merge KK1 G1' KK
H38 : merge G1 KK L
H39 : merge KK G1 L
H40 : adj KK (par A2 B2) U1
H41 : adj U1 (par A1 B1) G2
H42 : merge U1 G1 M
H43 : adj L (par A2 B2) M
H44 : perm U1 G2'
H45 : merge G2' G1 M
H48 : merge D7 D5 L1
H49 : merge D1' D6 D7
H50 : merge D6 D5 D2
H51 : merge D1' D2 L1
H52 : merge D2 D1' L1
H53 : merge G1' LL L
H54 : merge D5 D7 L1
============================
 adj L (par A2 B2) M /\ merge G1' LL L /\ merge D5 D7 L1 /\ adj G1' A2 G3 /\
   adj LL B2 G5 /\ prove G3 D5 /\ prove G5 D7

23 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H43, apply H53), apply H54), apply H17), apply H31), apply H19), apply H30).
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G'
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H15 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G'
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H15 : is_list D2
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G'
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H15 : is_list D2
H16 : is_list G2'
H17 : is_list G1
H18 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H16 *H17.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H15 : is_list D2
H18 : is_list D1
H19 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H15 : is_list D2
H18 : is_list D1
H19 : merge G2' G1 L
H20 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H15 *H20.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H18 : is_list D1
H19 : merge G2' G1 L
H21 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result_diff to H14 H5.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H18 : is_list D1
H19 : merge G2' G1 L
H21 : merge D2 D1' L1
H22 : zero = par A1 B1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H22.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L L1 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H18 : is_list D1
H19 : merge G2' G1 L
H21 : merge D2 D1' L1
H23 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H19 H23.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L L1 KK LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H18 : is_list D1
H19 : merge G2' G1 L
H21 : merge D2 D1' L1
H23 : adj KK zero G2'
H24 : adj LL zero L
H25 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H21.
Subgoal 4.8.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 G' L L1 KK LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' zero G2
H18 : is_list D1
H19 : merge G2' G1 L
H21 : merge D2 D1' L1
H23 : adj KK zero G2'
H24 : adj LL zero L
H25 : merge KK G1 LL
H26 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H19, apply H21), unfold(prove, 10, exists[G' = LL] split(apply H24, apply H26))).
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H16 : is_list G2'
H17 : is_list G1
H18 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H16 *H17.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
H20 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_3_is_list to H14.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
H20 : is_list D1'
H21 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H20.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L L1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
H22 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H14.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L L1 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
H22 : merge D2 D1' L1
H23 : adj LL top L1
H24 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 4.8.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 D'1 L L1 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 top D2
H15 : is_list G2
H18 : is_list D1
H19 : merge G2' G1 L
H22 : merge D2 D1' L1
H23 : adj LL top L1
H24 : merge D'1 D1' LL
H25 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H19, apply H22), unfold(prove, 11, exists[D' = LL] split(apply H23, apply H25))).
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H17 : par A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H17.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_swap to H18 H15.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H20.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H19.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL A2 G4
H25 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_swap to H18 H14.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL A2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H26 H25.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL A2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_same_result to H27 H5.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL A2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
H30 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_merge_1 to H28 H30.
Subgoal 4.8.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' A2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK A2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL A2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
H30 : perm U1 G2'
H31 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H31, apply H22), unfold(prove, 12, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H29, apply H24), apply H23))).
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H17 : par A1 B1 = with A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H17.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H15.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H20.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H19.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL B2 G4
H25 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H14.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL B2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H26 H25.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL B2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H27 H5.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL B2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
H30 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H28 H30.
Subgoal 4.8.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G3 KK U G4 D5 LL U1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (with A2 B2) G2
H15 : adj G' B2 G3
H16 : prove G3 D2 ***
H18 : adj KK (par A1 B1) G'
H19 : adj KK B2 U
H20 : adj U (par A1 B1) G3
H21 : merge U G1 G4
H22 : merge D2 D1' D5
H23 : prove G4 D5
H24 : adj LL B2 G4
H25 : merge KK G1 LL
H26 : adj KK (with A2 B2) U1
H27 : adj U1 (par A1 B1) G2
H28 : merge U1 G1 M
H29 : adj LL (with A2 B2) M
H30 : perm U1 G2'
H31 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D5] split(split(apply H31, apply H22), unfold(prove, 13, exists[A = A2, B = B2, G' = LL, G1 = G4] split(split(apply H29, apply H24), apply H23))).
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D2' D5 D6 G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D2' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D2' D'1
H20 : perm G3 G2
H21 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < rename D2' to D6'.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_sym to H20.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_perm_result to H22 H5.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H23.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H26 H15.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_sym to H21.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_perm_result to H30 H5.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H32 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H31.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H32 : perm G2' KK1
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H34 H16.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H24 : perm G2' KK
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H32 : perm G2' KK1
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H32 : perm G2' KK1
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H25 H38.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H32 : perm G2' KK1
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_sym to *H32.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H40.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_perm_det to H41 H39.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_2_is_list to H42.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H43 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_refl to *H43.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H19.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_perm_det to H45 H29.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H29.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < exists G6, M.
Subgoal 4.8.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 merge G2' G1 G6 /\ merge D2 D1' M /\ prove G6 M

18 other subgoals.

cut_admissibility < split.
Subgoal 4.8.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 merge G2' G1 G6

20 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 4.8.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 merge D2 D1' M

19 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 4.8.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 prove G6 M

18 other subgoals.

cut_admissibility < unfold 14.
Subgoal 4.8.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G6 /\
   perm G2 G6

18 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 4.8.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D1 /\
   adj D2' B2 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G6 /\ perm G2 G6

18 other subgoals.

cut_admissibility < exists LL1, D7, D8.
Subgoal 4.8.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 exists G1 G2, adj LL (with A2 B2) M /\ adj LL A2 D7 /\ adj LL1 B2 D8 /\
   prove G1 D7 /\ prove G2 D8 /\ perm LL1 LL /\ perm G1 G6 /\ perm G2 G6

18 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 4.8.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M /\ adj LL A2 D7 /\ adj LL1 B2 D8 /\ prove G5 D7 /\
   prove G6 D8 /\ perm LL1 LL /\ perm G5 G6 /\ perm G6 G6

18 other subgoals.

cut_admissibility < split.
Subgoal 4.8.1.14.3.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 adj LL (with A2 B2) M

25 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 4.8.1.14.3.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 adj LL A2 D7

24 other subgoals.

cut_admissibility < search.
Witness: apply H28.
Subgoal 4.8.1.14.3.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 adj LL1 B2 D8

23 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 4.8.1.14.3.4:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 prove G5 D7

22 other subgoals.

cut_admissibility < search.
Witness: apply H27.
Subgoal 4.8.1.14.3.5:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 prove G6 D8

21 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 4.8.1.14.3.6:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 perm LL1 LL

20 other subgoals.

cut_admissibility < search.
Witness: apply H46.
Subgoal 4.8.1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 perm G5 G6

19 other subgoals.

cut_admissibility < apply perm_sym to H42.
Subgoal 4.8.1.14.3.7:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
H49 : perm G5 G6
============================
 perm G5 G6

19 other subgoals.

cut_admissibility < search.
Witness: apply H49.
Subgoal 4.8.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
============================
 perm G6 G6

18 other subgoals.

cut_admissibility < apply perm_1_is_list to H42.
Subgoal 4.8.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
H49 : is_list G6
============================
 perm G6 G6

18 other subgoals.

cut_admissibility < apply perm_refl to H49.
Subgoal 4.8.1.14.3.8:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D6' D5 D6 G3 G4 KK G5
           D7 LL KK1 G6 D8 LL1 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (with A2 B2) D2
H15 : adj D'1 A2 D5
H16 : adj D6' B2 D6
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm D6' D'1
H20 : perm G3 G2
H21 : perm G4 G2
H22 : perm G2 G3
H23 : adj KK (par A1 B1) G3
H25 : merge KK G1 G5
H26 : merge D5 D1' D7
H27 : prove G5 D7
H28 : adj LL A2 D7
H29 : merge D'1 D1' LL
H30 : perm G2 G4
H31 : adj KK1 (par A1 B1) G4
H33 : merge KK1 G1 G6
H34 : merge D6 D1' D8
H35 : prove G6 D8
H36 : adj LL1 B2 D8
H37 : merge D6' D1' LL1
H38 : perm KK G2'
H39 : merge G2' G1 G5
H40 : perm KK1 G2'
H41 : merge G2' G1 G6
H42 : perm G6 G5
H44 : perm G5 G5
H45 : merge D'1 D1' LL1
H46 : perm LL1 LL
H47 : merge D2 D1' M
H48 : adj LL (with A2 B2) M
H49 : is_list G6
H50 : perm G6 G6
============================
 perm G6 G6

18 other subgoals.

cut_admissibility < search.
Witness: apply H50.
Subgoal 4.8.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 A2 D5
H16 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H5.
Subgoal 4.8.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 A2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H15.
Subgoal 4.8.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 A2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H21.
Subgoal 4.8.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6 LL M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 A2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
H20 : adj LL A2 D6
H21 : merge D'1 D1' LL
H22 : merge D2 D1' M
H23 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H17, apply H22), unfold(prove, 15, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H23, apply H20), apply H19))).
Subgoal 4.8.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 B2 D5
H16 : prove G2 D5 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H5.
Subgoal 4.8.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 B2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H15.
Subgoal 4.8.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 B2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
H20 : adj LL B2 D6
H21 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_left to H14 H21.
Subgoal 4.8.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 D'1 D5 G3 D6 LL M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj D'1 (plus A2 B2) D2
H15 : adj D'1 B2 D5
H16 : prove G2 D5 ***
H17 : merge G2' G1 G3
H18 : merge D5 D1' D6
H19 : prove G3 D6
H20 : adj LL B2 D6
H21 : merge D'1 D1' LL
H22 : merge D2 D1' M
H23 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H17, apply H22), unfold(prove, 16, exists[A = A2, B = B2, D' = LL, D1 = D6] split(split(apply H23, apply H20), apply H19))).
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H14.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H22 : par A1 B1 = plus A2 B2 /\ perm G2' G' \/
        (exists KK, adj KK (par A1 B1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H22.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H23 H15.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H17 H4 H25.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H26 H24.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_sym to H19.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_perm_result to H31 H23.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H32 H16.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H18 H4 H35.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H36 H34.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H30 H33.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_perm_det to H40 H41.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H23 H14.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_left to H43 H30.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H44 H5.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H45 H47.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H27 H20.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H21.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_perm_det to H50 H49.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_1_is_list to H51.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H52 : is_list D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_refl to *H52.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_sym to H51.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < exists M, D8.
Subgoal 4.8.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 merge G2' G1 M /\ merge D2 D1' D8 /\ prove M D8

15 other subgoals.

cut_admissibility < split.
Subgoal 4.8.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 merge G2' G1 M

17 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 4.8.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 merge D2 D1' D8

16 other subgoals.

cut_admissibility < search.
Witness: apply H50.
Subgoal 4.8.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 prove M D8

15 other subgoals.

cut_admissibility < unfold 17.
Subgoal 4.8.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D8 /\
   perm D2 D8

15 other subgoals.

cut_admissibility < exists A2, B2, LL.
Subgoal 4.8.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G1 /\
   adj G2' B2 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D8 /\ perm D2 D8

15 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 4.8.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 exists D1 D2, adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D8 /\ perm D2 D8

15 other subgoals.

cut_admissibility < exists D7, D8.
Subgoal 4.8.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 B1 D' D3 D4 A2 B2 G' G2'1 G3 G4 D5 D6 KK U
           G5 D7 LL KK1 U1 G6 D8 LL1 U2 M
C <-- par A1 B1
B <-- B1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A1 B1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A1 B1) D1
H5 : adj G2' (par A1 B1) G2
H6 : formula A1 *
H7 : formula B1 *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : perm D1' D'
H14 : adj G' (plus A2 B2) G2
H15 : adj G' A2 G3
H16 : adj G2'1 B2 G4
H17 : prove G3 D5 ***
H18 : prove G4 D6 ***
H19 : perm G2'1 G'
H20 : perm D5 D2
H21 : perm D6 D2
H23 : adj KK (par A1 B1) G'
H24 : adj KK A2 U
H25 : adj U (par A1 B1) G3
H26 : merge U G1 G5
H27 : merge D5 D1' D7
H28 : prove G5 D7
H29 : adj LL A2 G5
H30 : merge KK G1 LL
H31 : perm G' G2'1
H32 : adj KK1 (par A1 B1) G2'1
H33 : perm KK KK1
H34 : adj KK1 B2 U1
H35 : adj U1 (par A1 B1) G4
H36 : merge U1 G1 G6
H37 : merge D6 D1' D8
H38 : prove G6 D8
H39 : adj LL1 B2 G6
H40 : merge KK1 G1 LL1
H41 : merge KK1 G1 LL
H42 : perm LL1 LL
H43 : adj KK (plus A2 B2) U2
H44 : adj U2 (par A1 B1) G2
H45 : merge U2 G1 M
H46 : adj LL (plus A2 B2) M
H47 : perm U2 G2'
H48 : merge G2' G1 M
H49 : merge D2 D1' D7
H50 : merge D2 D1' D8
H51 : perm D8 D7
H53 : perm D8 D8
H54 : perm D7 D8
============================
 adj LL (plus A2 B2) M /\ adj LL A2 G5 /\ adj LL1 B2 G6 /\ prove G5 D7 /\
   prove G6 D8 /\ perm LL1 LL /\ perm D7 D8 /\ perm D8 D8

15 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H46, apply H29), apply H39), apply H28), apply H38), apply H42), apply H54), apply H53).
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H15 H9.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H22 H14.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H13 H8.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H25 H24.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (par A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H26 H4.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (par A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_2 to H27 H29.
Subgoal 4.8.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (par A1 B1) D1
H9 : adj D4 A1 D3
H10 : adj D' B1 D4
H11 : prove G1 D3 **
H13 : adj KK (par A B) D'
H14 : adj KK B1 U
H15 : adj U (par A B) D4
H16 : adj U A1 U1
H17 : adj U1 (par A B) D3
H18 : merge G2' G1 G3
H19 : merge D2 U1 D5
H20 : prove G3 D5
H21 : adj LL A1 D5
H22 : merge D2 U LL
H23 : adj LL1 B1 LL
H24 : merge D2 KK LL1
H25 : adj KK (par A1 B1) U2
H26 : adj U2 (par A B) D1
H27 : merge D2 U2 M
H28 : adj LL1 (par A1 B1) M
H29 : perm U2 D1'
H30 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H18, apply H30), unfold(prove, 8, exists[A = A1, B = B1, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H28, apply H21), apply H23), apply H20))).
Subgoal 4.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_3 to H10 H4.
Subgoal 4.9:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H15 : (exists JJ, adj JJ (par A B) D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK (par A B) D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H15.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H13 H3 H16 H5.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H11.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_2_is_list to H9.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H23 : is_list LL
H24 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H9.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H26.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H29 : is_list D4
H30 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H31 H19 H17.
Subgoal 4.9.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj JJ (par A B) D3
H17 : merge JJ D4 D1'
H18 : merge G2' G3 G5
H19 : merge D2 JJ D5
H20 : prove G5 D5
H21 : adj LL A1 G5
H22 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B1) M
H31 : merge D5 D4 L1
H32 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H27, apply H32), unfold(prove, 9, exists[A = A1, B = B1, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H28, apply H25), apply H31), apply H21), apply H12), apply H20), apply H14))).
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H14 H3 H16 H5.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H18 H12.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H22.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_1_is_list to H9.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H23 : is_list LL
H24 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H23 *H24.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to H25.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to H9.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H25 H22 H27.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H28.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H31 : is_list D3
H32 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H31.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to H33.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H33 H19 H35.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 4.9.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

13 other subgoals.

cut_admissibility < split.
Subgoal 4.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge G2' G1 M

15 other subgoals.

cut_admissibility < search.
Witness: apply H29.
Subgoal 4.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 merge D2 D1' L1

14 other subgoals.

cut_admissibility < search.
Witness: apply H36.
Subgoal 4.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 prove M L1

13 other subgoals.

cut_admissibility < unfold 9.
Subgoal 4.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

13 other subgoals.

cut_admissibility < exists A1, B1, L.
Subgoal 4.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A1 B1) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A1 G1 /\ adj G2' B1 G2 /\ prove G1 D1 /\
   prove G2 D2

13 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 4.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 exists D1 D2, adj L (par A1 B1) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A1 G3 /\ adj LL B1 G5 /\ prove G3 D1 /\ prove G5 D2

13 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 4.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
           L M L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (par A1 B1) G1
H9 : merge G1' G2'1 G'
H10 : merge D3 D4 D1
H11 : adj G1' A1 G3
H12 : adj G2'1 B1 G4
H13 : prove G3 D3 **
H14 : prove G4 D4 **
H16 : adj KK (par A B) D4
H17 : merge D3 KK D1'
H18 : merge G2' G4 G5
H19 : merge D2 KK D5
H20 : prove G5 D5
H21 : adj LL B1 G5
H22 : merge G2' G2'1 LL
H25 : merge LL G1' L
H26 : merge G1' LL L
H27 : merge G2'1 G1' G'
H28 : merge G2' G' L
H29 : merge G2' G1 M
H30 : adj L (par A1 B1) M
H33 : merge D5 D3 L1
H34 : merge D3 D5 L1
H35 : merge KK D3 D1'
H36 : merge D2 D1' L1
============================
 adj L (par A1 B1) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A1 G3 /\
   adj LL B1 G5 /\ prove G3 D3 /\ prove G5 D5

13 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H30, apply H26), apply H34), apply H11), apply H21), apply H13), apply H20).
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_3_is_list to H8.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H10 : is_list G2'
H11 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H11.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H14 : is_list D2
H15 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H15.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H16.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H12 H8.
Subgoal 4.10:

Variables: G1 D1 D1' G2 G2' D2 B A G' L L1 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' zero G1
H9 : is_list D1
H12 : merge G2' G1 L
H13 : is_list G2
H16 : merge D2 D1' L1
H17 : is_list L1
H18 : adj LL zero L
H19 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H12, apply H16), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H17))).
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D'
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H9 : is_list G1
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H9.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
H14 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H13 *H14.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result_diff to H8 H4.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H16 : top = par A B /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H16.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H17.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H11.
Subgoal 4.11:

Variables: G1 D1 D1' G2 G2' D2 B A D' L L1 KK LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' top D1
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H17 : adj KK top D1'
H18 : adj LL top L1
H19 : merge D2 KK LL
H20 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H11, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H18, apply H20))).
Subgoal 4.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 4.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 4.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 4.12:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' A1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL A1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 12, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 4.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H4 H5.
Subgoal 4.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H11 H9.
Subgoal 4.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H15.
Subgoal 4.13:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G3 G4 D3 LL M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (with A1 B1) G1
H9 : adj G' B1 G3
H10 : prove G3 D1 **
H11 : merge G2' G3 G4
H12 : merge D2 D1' D3
H13 : prove G4 D3
H14 : adj LL B1 G4
H15 : merge G2' G' LL
H16 : merge G2' G1 M
H17 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H16, apply H12), unfold(prove, 13, exists[A = A1, B = B1, G' = LL, G1 = G4] split(split(apply H17, apply H14), apply H13))).
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D2' D3 D4 G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D2' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D2' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H16 : par A B = with A1 B1 /\ perm D1' D' \/ (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H16.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm D4' D'
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to *H13.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H17.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H26 H10.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H29 H5.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H31 H28.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H14.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H30 H15.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H35.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_2_is_list to H37.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H38 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_refl to *H38.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H24 H27.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H40.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H17 H8.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H42 H24.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result to H43 H4.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_2 to H44 H46.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 4.14:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

8 other subgoals.

cut_admissibility < split.
Subgoal 4.14.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge G2' G1 G5

10 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 4.14.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 merge D2 D1' M

9 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 4.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 prove G5 M

8 other subgoals.

cut_admissibility < unfold 14.
Subgoal 4.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

8 other subgoals.

cut_admissibility < exists A1, B1, LL.
Subgoal 4.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A1 B1) M /\ adj LL A1 D1 /\
   adj D2' B1 D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\
   perm G1 G5 /\ perm G2 G5

8 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 4.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

8 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 4.14.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D4' D3 D4 G3 G4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (with A1 B1) D1
H9 : adj D' A1 D3
H10 : adj D4' B1 D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : perm G3 G1
H15 : perm G4 G1
H17 : adj KK (par A B) D'
H18 : adj KK A1 U
H19 : adj U (par A B) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 KK LL
H25 : perm D' D4'
H26 : adj KK1 (par A B) D4'
H27 : perm KK KK1
H28 : adj KK1 B1 U1
H29 : adj U1 (par A B) D4
H30 : merge G2' G4 G6
H31 : merge D2 U1 D6
H32 : prove G6 D6
H33 : adj LL1 B1 D6
H34 : merge D2 KK1 LL1
H35 : merge G2' G1 G5
H36 : merge G2' G1 G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D2 KK1 LL
H41 : perm LL1 LL
H42 : adj KK (with A1 B1) U2
H43 : adj U2 (par A B) D1
H44 : merge D2 U2 M
H45 : adj LL (with A1 B1) M
H46 : perm U2 D1'
H47 : merge D2 D1' M
============================
 adj LL (with A1 B1) M /\ adj LL A1 D5 /\ adj LL1 B1 D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

8 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H45, apply H23), apply H33), apply H22), apply H32), apply H41), apply H39), apply H37).
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H11 : par A B = plus A1 B1 /\ perm D1' D' \/ (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < case H11.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 4.15:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' A1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK A1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL A1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 15, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H8.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H11 : par A B = plus A1 B1 /\ perm D1' D' \/ (exists KK, adj KK (par A B) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < case H11.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H12 H9.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H14 H5.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H13.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H12 H8.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H20 H19.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result to H21 H4.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H24.
Subgoal 4.16:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 D' D3 KK U G3 D4 LL U1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj D' (plus A1 B1) D1
H9 : adj D' B1 D3
H10 : prove G1 D3 **
H12 : adj KK (par A B) D'
H13 : adj KK B1 U
H14 : adj U (par A B) D3
H15 : merge G2' G1 G3
H16 : merge D2 U D4
H17 : prove G3 D4
H18 : adj LL B1 D4
H19 : merge D2 KK LL
H20 : adj KK (plus A1 B1) U1
H21 : adj U1 (par A B) D1
H22 : merge D2 U1 M
H23 : adj LL (plus A1 B1) M
H24 : perm U1 D1'
H25 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H15, apply H25), unfold(prove, 16, exists[A = A1, B = B1, D' = LL, D1 = D4] split(split(apply H23, apply H18), apply H17))).
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G2'1 G3 G4 D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G2'1 B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G2'1 G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to H14.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_perm_result to H16 H4.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H17 H5.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H9.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_perm_result to H24 H4.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H25 H5.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H27 H10.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H31 H13.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H23.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H8 H23.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H18 : perm D1' KK
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to *H18.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H36.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H26 : perm D1' KK1
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to *H26.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H38.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_perm_det to H39 H37.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_1_is_list to H40.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H41 : is_list D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_refl to *H41.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to H40.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < exists M, D6.
Subgoal 4.17:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M /\ merge D2 D1' D6 /\ prove M D6

5 other subgoals.

cut_admissibility < split.
Subgoal 4.17.1:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge G2' G1 M

7 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 4.17.2:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 merge D2 D1' D6

6 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 4.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 prove M D6

5 other subgoals.

cut_admissibility < unfold 17.
Subgoal 4.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D6 /\
   perm D2 D6

5 other subgoals.

cut_admissibility < exists A1, B1, LL.
Subgoal 4.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G1 /\
   adj G2' B1 G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\
   perm D1 D6 /\ perm D2 D6

5 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 4.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 exists D1 D2, adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D6 /\ perm D2 D6

5 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 4.17.3:

Variables: G1 D1 D1' G2 G2' D2 B A A1 B1 G' G4' G3 G4 D3 D4 KK G5 D5 LL KK1
           G6 D6 LL1 M
C <-- par A B
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (par A B) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (par A B) D1
H5 : adj G2' (par A B) G2
H6 : formula A *
H7 : formula B *
H8 : adj G' (plus A1 B1) G1
H9 : adj G' A1 G3
H10 : adj G4' B1 G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : perm G4' G'
H14 : perm D3 D1
H15 : perm D4 D1
H16 : perm D1 D3
H17 : adj KK (par A B) D3
H19 : merge G2' G3 G5
H20 : merge D2 KK D5
H21 : prove G5 D5
H22 : adj LL A1 G5
H23 : merge G2' G' LL
H24 : perm D1 D4
H25 : adj KK1 (par A B) D4
H27 : merge G2' G4 G6
H28 : merge D2 KK1 D6
H29 : prove G6 D6
H30 : adj LL1 B1 G6
H31 : merge G2' G4' LL1
H32 : merge G2' G' LL1
H33 : perm LL1 LL
H34 : merge G2' G1 M
H35 : adj LL (plus A1 B1) M
H36 : perm KK D1'
H37 : merge D2 D1' D5
H38 : perm KK1 D1'
H39 : merge D2 D1' D6
H40 : perm D6 D5
H42 : perm D6 D6
H43 : perm D5 D6
============================
 adj LL (plus A1 B1) M /\ adj LL A1 G5 /\ adj LL1 B1 G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D6 /\ perm D6 D6

5 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H35, apply H22), apply H30), apply H21), apply H29), apply H33), apply H43), apply H42).
Subgoal 5:

Variables: G1 D1 D1' G2 G2' D2
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 5.1:

Variables: G1 D1 D1' G2 G2' D2 A
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj nil (atom A) G1
H7 : adj nil (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H7.
Subgoal 5.1:

Variables: G1 D1' G2 G2' D2 A
C <-- zero
D1 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero (atom A :: nil)
H5 : adj G2' zero G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H4.
Subgoal 5.1:

Variables: G1 G2 G2' D2 A K
C <-- zero
D1 <-- atom A :: nil
D1' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' zero G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
H10 : formula (atom A)
H11 : adj K zero nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A :: K) D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H11.
Subgoal 5.2:

Variables: D1 D1' G2 G2' D2
C <-- zero
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H6.
Subgoal 5.2:

Variables: D1' G2 G2' D2
C <-- zero
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero (one :: nil)
H5 : adj G2' zero G2
H7 : formula one
H8 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H4.
Subgoal 5.2:

Variables: G2 G2' D2 K
C <-- zero
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' zero G2
H7 : formula one
H8 : is_list nil
H9 : formula one
H10 : adj K zero nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H10.
Subgoal 5.3:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' one G1
H7 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H4 H5.
Subgoal 5.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H8.
Subgoal 5.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
H11 : merge G2' G1 M
H12 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H11, apply H9), unfold(prove, 3, exists[G' = G3] split(apply H12, apply H10))).
Subgoal 5.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 5.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H7.
Subgoal 5.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H8.
Subgoal 5.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H16.
Subgoal 5.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
H17 : merge G2' G1 M
H18 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H17, apply H11), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H18, apply H13), apply H15), apply H12))).
Subgoal 5.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : zero = tensor A B /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H13.
Subgoal 5.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_3 to H7 H14.
Subgoal 5.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H15 : (exists JJ, adj JJ zero D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 zero D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H15.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H16 H9.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_1_is_list to H10.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list LL
H26 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H28 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H28 : is_list G4
H29 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H28.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H27 H24 H17.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H32 H31.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 zero D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H33 H4.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 zero D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H36.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 zero D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
H37 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H30 H20 H8.
Subgoal 5.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj JJ zero D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U zero D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 zero D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
H37 : merge D2 D1' M
H38 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = M] split(split(apply H38, apply H37), unfold(prove, 5, exists[A = A, B = B, D' = L, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H35, apply H27), apply H30), apply H23), apply H10), apply H22), apply H12))).
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H19 H5.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_1_is_list to H9.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list LL
H26 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H17.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H27 H24 H28.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H30 H29.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result to H31 H4.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H32 H34.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to H37 H36.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H8.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H38 H20 H39.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H38.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < exists L1, M.
Subgoal 5.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

16 other subgoals.

cut_admissibility < split.
Subgoal 5.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge G2' G1 L1

18 other subgoals.

cut_admissibility < search.
Witness: apply H40.
Subgoal 5.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge D2 D1' M

17 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 5.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 prove L1 M

16 other subgoals.

cut_admissibility < unfold 5.
Subgoal 5.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

16 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 5.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists D1 D2 D1' D2' G1 G2, adj L (tensor A B) M /\ merge D1' D2' L /\
   merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

16 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 5.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists G1 G2, adj L (tensor A B) M /\ merge D1'1 LL L /\ merge G1 G2 L1 /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

16 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 5.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D'
H16 : adj KK1 zero D2'
H18 : adj KK1 B U
H19 : adj U zero D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 zero D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 adj L (tensor A B) M /\ merge D1'1 LL L /\ merge G3 G5 L1 /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

16 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H33, apply H41), apply H42), apply H9), apply H23), apply H11), apply H22).
Subgoal 5.6:

Variables: G1 D1' G2 G2' D2
C <-- zero
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero nil
H5 : adj G2' zero G2
H6 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H6.
Subgoal 5.6:

Variables: D1' G2 G2' D2
C <-- zero
G1 <-- bot :: nil
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove (bot :: nil) nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero nil
H5 : adj G2' zero G2
H7 : formula bot
H8 : is_list nil
============================
 exists G3 D3, merge G2' (bot :: nil) G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H4.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H8 : zero = bot /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H8.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H9 H5.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H9 H6.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H11.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U zero D1
H15 : merge D2 U M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H14 H4.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U zero D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_2 to H15 H17.
Subgoal 5.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK zero D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U zero D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
H18 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H10, apply H18), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H12))).
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H10 : zero = par A B /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H10.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H13 H7.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H14.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H20 H12.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H11 H6.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H23 H22.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 zero D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H24 H4.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 zero D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_2 to H25 H27.
Subgoal 5.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK zero D'
H12 : adj KK B U
H13 : adj U zero D4
H14 : adj U A U1
H15 : adj U1 zero D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 zero D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
H28 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H28), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H26, apply H19), apply H21), apply H18))).
Subgoal 5.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_3 to H8 H4.
Subgoal 5.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : (exists JJ, adj JJ zero D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK zero D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H13.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H14 H5.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H9.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
H23 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
H23 : is_list G2'1
H24 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H23.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H22 : is_list D5
H24 : is_list D4
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H22 *H24.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H25 H20 H7.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H27.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
H28 : merge G2' G1 M
H29 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H26 H17 H15.
Subgoal 5.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ zero D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
H28 : merge G2' G1 M
H29 : adj L (par A B) M
H30 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H28, apply H30), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H29, apply H25), apply H26), apply H19), apply H10), apply H18), apply H12))).
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H14 H5.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_1_is_list to H9.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
H23 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
H23 : is_list D5
H24 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H22 *H21.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : is_list D5
H24 : is_list D3
H25 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H24 *H23.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H25.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H7.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H27 H20 H28.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H29.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H26.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H32 H17 H33.
Subgoal 5.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK zero D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H30, apply H34), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G3, G2 = G5, G1' = G1', G2' = LL, D1 = D3, D2 = D5] split(split(split(split(split(split(apply H31, apply H25), apply H26), apply H9), apply H19), apply H11), apply H18))).
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to H8 H9.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to H13 H11.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H14.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
H15 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H6.
Subgoal 5.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
H15 : is_list L1
H16 : adj LL zero L
H17 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H10, apply H14), unfold(prove, 10, exists[G' = LL] split(apply H16, apply H15))).
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H8 : top = zero /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H8.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to H10 H7.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
H12 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
H12 : is_list D1'
H13 : is_list G2
H14 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to H14 H12.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
H12 : is_list D1'
H13 : is_list G2
H14 : is_list D2
H15 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H9.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
H12 : is_list D1'
H13 : is_list G2
H14 : is_list D2
H15 : merge D2 D1' L1
H16 : adj LL top L1
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H11.
Subgoal 5.11:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
H11 : merge G2' G1 L
H12 : is_list D1'
H13 : is_list G2
H14 : is_list D2
H15 : merge D2 D1' L1
H16 : adj LL top L1
H17 : merge D2 KK LL
H18 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H11, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 5.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 5.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 5.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 5.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 5.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 5.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 5.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 5.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H14 : zero = with A B /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < case H14.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H15 H7.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H17 H5.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_sym to H11.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_perm_result to H23 H15.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H24 H8.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H27 H5.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H29 H26.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H12.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H13.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H33.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_2_is_list to H35.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_refl to *H36.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H25.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H38.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_swap to H15 H6.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H40 H22.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result to H41 H4.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply perm_merge_2 to H42 H44.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 5.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

7 other subgoals.

cut_admissibility < split.
Subgoal 5.14.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5

9 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 5.14.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge D2 D1' M

8 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 5.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 prove G5 M

7 other subgoals.

cut_admissibility < unfold 14.
Subgoal 5.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

7 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 5.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

7 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 5.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

7 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 5.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK zero D'
H16 : adj KK A U
H17 : adj U zero D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 zero D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 zero D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 zero D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

7 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H21), apply H31), apply H20), apply H30), apply H39), apply H37), apply H35).
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H9 : zero = plus A B /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < case H9.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 5.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK A U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H9 : zero = plus A B /\ perm D1' D' \/ (exists KK, adj KK zero D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < case H9.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 5.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK zero D'
H11 : adj KK B U
H12 : adj U zero D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 zero D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_sym to H12.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_perm_result to H14 H4.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H7.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_sym to H13.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_perm_result to H22 H4.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H23 H5.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H25 H8.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H29 H11.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_perm_det to H30 H21.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H21.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_sym to *H16.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H34.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H26 H36.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H39 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 5.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

4 other subgoals.

cut_admissibility < split.
Subgoal 5.17.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M

6 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 5.17.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge D2 D1' D5

5 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 5.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 prove M D5

4 other subgoals.

cut_admissibility < unfold 17.
Subgoal 5.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

4 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 5.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

4 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 5.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

4 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 5.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- zero
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula zero @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' zero D1
H5 : adj G2' zero G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK zero D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 zero D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

4 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H33, apply H20), apply H28), apply H19), apply H27), apply H31), apply H40), apply H38).
Subgoal 6:

Variables: G1 D1 D1' G2 G2' D2
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 6.1:

Variables: G1 D1 D1' G2 G2' D2 A
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil (atom A) G1
H7 : adj nil (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H7.
Subgoal 6.1:

Variables: G1 D1' G2 G2' D2 A
C <-- one
D1 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' one (atom A :: nil)
H5 : adj G2' one G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H4.
Subgoal 6.1:

Variables: G1 G2 G2' D2 A K
C <-- one
D1 <-- atom A :: nil
D1' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' one G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
H10 : formula (atom A)
H11 : adj K one nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A :: K) D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H11.
Subgoal 6.2:

Variables: D1 D1' G2 G2' D2
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 6.2:

Variables: D1 D1' G2 G2' D2
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H7 : one = one /\ perm nil D1' \/ (exists KK, adj KK one D1')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H7.
Subgoal 6.2.1:

Variables: D1 D1' G2 G2' D2
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 6.2.1.1:

Variables: D1 D1' G2 G2' D2 A
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj nil (atom A) G2
H10 : adj nil (atom A) D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H9.
Subgoal 6.2.1.1:

Variables: D1 D1' G2' D2 A
C <-- one
G1 <-- nil
G2 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one (atom A :: nil)
H6 : adj nil one D1
H8 : perm nil D1'
H10 : adj nil (atom A) D2
H11 : formula (atom A)
H12 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H5.
Subgoal 6.2.1.1:

Variables: D1 D1' D2 A K
C <-- one
G1 <-- nil
G2 <-- atom A :: nil
G2' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' one D1
H6 : adj nil one D1
H8 : perm nil D1'
H10 : adj nil (atom A) D2
H11 : formula (atom A)
H12 : is_list nil
H13 : formula (atom A)
H14 : adj K one nil
============================
 exists G3 D3, merge (atom A :: K) nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H14.
Subgoal 6.2.1.2:

Variables: D1 D1' G2' D2
C <-- one
G1 <-- nil
G2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one nil
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj nil one D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H5.
Subgoal 6.2.1.3:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.3:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H11 : one = one /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < case H11.
Subgoal 6.2.1.3.1:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply perm_merge_2_nil to H12.
Subgoal 6.2.1.3.1:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
H13 : merge G2' nil G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply prove_is_list to H10.
Subgoal 6.2.1.3.1:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
H13 : merge G2' nil G'
H14 : is_list G'
H15 : is_list D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < apply list_merge_1 to H15.
Subgoal 6.2.1.3.1:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
H13 : merge G2' nil G'
H14 : is_list G'
H15 : is_list D2
H16 : merge D2 nil D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.3.1.1:

Variables: D1 G2 G2' D2 G'
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
H13 : merge G2' nil G'
H14 : is_list G'
H15 : is_list D2
H16 : merge D2 nil D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G', D3 = D2] split(split(apply H13, apply H16), apply H10).
Subgoal 6.2.1.3.1.2:

Variables: D1 D1' G2 G2' D2 G' A KK LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : perm G2' G'
H13 : merge G2' nil G'
H14 : is_list G'
H15 : is_list D2
H16 : merge D2 nil D2
H17 : adj KK A nil
H18 : adj LL A D1'
H19 : perm KK LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H17.
Subgoal 6.2.1.3.2:

Variables: D1 D1' G2 G2' D2 G' KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H10 H4 H12.
Subgoal 6.2.1.3.2:

Variables: D1 D1' G2 G2' D2 G' KK G3 D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : adj KK one G'
H13 : merge KK nil G3
H14 : merge D2 D1' D3
H15 : prove G3 D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply add_to_merge_left to H12 H13.
Subgoal 6.2.1.3.2:

Variables: D1 D1' G2 G2' D2 G' KK G3 D3 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : adj KK one G'
H13 : merge KK nil G3
H14 : merge D2 D1' D3
H15 : prove G3 D3
H16 : merge G' nil M
H17 : adj G3 one M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_same_result to H9 H5.
Subgoal 6.2.1.3.2:

Variables: D1 D1' G2 G2' D2 G' KK G3 D3 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : adj KK one G'
H13 : merge KK nil G3
H14 : merge D2 D1' D3
H15 : prove G3 D3
H16 : merge G' nil M
H17 : adj G3 one M
H18 : perm G' G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply perm_merge_1 to H16 H18.
Subgoal 6.2.1.3.2:

Variables: D1 D1' G2 G2' D2 G' KK G3 D3 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' one G2
H10 : prove G' D2 ***
H12 : adj KK one G'
H13 : merge KK nil G3
H14 : merge D2 D1' D3
H15 : prove G3 D3
H16 : merge G' nil M
H17 : adj G3 one M
H18 : perm G' G2'
H19 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H19, apply H14), unfold(prove, 3, exists[G' = G3] split(apply H17, apply H15))).
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H13 : one = tensor A B /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H13.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H18.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_unadj_1 to H19 H17.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H15.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
H24 : adj LL1 B LL
H25 : merge KK nil LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply adj_swap to H14 H9.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
H24 : adj LL1 B LL
H25 : merge KK nil LL1
H26 : adj KK (tensor A B) U2
H27 : adj U2 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply add_to_merge_left to H26 H25.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
H24 : adj LL1 B LL
H25 : merge KK nil LL1
H26 : adj KK (tensor A B) U2
H27 : adj U2 one G2
H28 : merge U2 nil M
H29 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply adj_same_result to H27 H5.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
H24 : adj LL1 B LL
H25 : merge KK nil LL1
H26 : adj KK (tensor A B) U2
H27 : adj U2 one G2
H28 : merge U2 nil M
H29 : adj LL1 (tensor A B) M
H30 : perm U2 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply perm_merge_1 to H28 H30.
Subgoal 6.2.1.4:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (tensor A B) G2
H10 : adj G4 A G3
H11 : adj G' B G4
H12 : prove G3 D2 ***
H14 : adj KK one G'
H15 : adj KK B U
H16 : adj U one G4
H17 : adj U A U1
H18 : adj U1 one G3
H19 : merge U1 nil G5
H20 : merge D2 D1' D3
H21 : prove G5 D3
H22 : adj LL A G5
H23 : merge U nil LL
H24 : adj LL1 B LL
H25 : merge KK nil LL1
H26 : adj KK (tensor A B) U2
H27 : adj U2 one G2
H28 : merge U2 nil M
H29 : adj LL1 (tensor A B) M
H30 : perm U2 G2'
H31 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H31, apply H20), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H29, apply H22), apply H24), apply H21))).
Subgoal 6.2.1.5:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_unadj_3 to H11 H5.
Subgoal 6.2.1.5:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H16 : (exists JJ, adj JJ one G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK one G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H16.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H6 H17.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H12.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H24 : is_list G4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H24 : is_list G4
H25 : is_list G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_exists to *H24 *H25.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H26 : merge G4 G5 L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_sym to *H26.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply change_merge_order to H27 H28 H18.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H29 : merge nil G2' L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H31 : is_list LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_sym to H23.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply change_merge_order to H33 H34 H10.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
H35 : merge nil D' L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
H36 : merge D' nil L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H36.
Subgoal 6.2.1.5.1:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
H36 : merge D' nil L1
H37 : merge D2 nil M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.5.1.1:

Variables: D1 G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1 M
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
H36 : merge D' nil L1
H37 : merge D2 nil M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H37), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H27), apply H22), apply H13), apply H21), apply H15))).
Subgoal 6.2.1.5.1.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L L1 M A1
           KK LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj JJ one G3
H18 : merge JJ G4 G2'
H19 : merge JJ nil G5
H20 : merge D3 nil D5
H21 : prove G5 D5
H22 : adj LL A D5
H23 : merge D1'1 nil LL
H27 : merge G5 G4 L
H28 : merge nil JJ G5
H30 : merge G2' nil L
H33 : merge LL D2' L1
H34 : merge nil D1'1 LL
H36 : merge D' nil L1
H37 : merge D2 nil M
H38 : adj L1 (tensor A B) M
H39 : adj KK A1 nil
H40 : adj LL1 A1 D1'
H41 : perm KK LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H39.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H6 H17.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H13.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H24 : is_list G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_3_is_list to H19.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H24 : is_list G3
H25 : is_list G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H24.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H26 : merge G5 G3 L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to H26.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H19 : merge KK nil G5
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H26 : merge G5 G3 L
H27 : merge G3 G5 L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H19.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H18 : merge G3 KK G2'
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H26 : merge G5 G3 L
H27 : merge G3 G5 L
H28 : merge nil KK G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H18.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H26 : merge G5 G3 L
H27 : merge G3 G5 L
H28 : merge nil KK G5
H29 : merge KK G3 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply change_merge_order to *H26 *H28 *H29.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H30 : merge nil G2' L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H30.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H31 : merge G2' nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H31 : merge G2' nil L
H32 : is_list D1'1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_3_is_list to H23.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H31 : merge G2' nil L
H32 : is_list D1'1
H33 : is_list LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H23 : merge D2' nil LL
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H35 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H23.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H10 : merge D1'1 D2' D'
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H35 : merge LL D1'1 L1
H36 : merge nil D2' LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H10.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H35 : merge LL D1'1 L1
H36 : merge nil D2' LL
H37 : merge D2' D1'1 D'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply change_merge_order to *H35 *H36 *H37.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H38 : merge nil D' L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply merge_sym to *H38.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H39 : merge D' nil L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H39.
Subgoal 6.2.1.5.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H39 : merge D' nil L1
H40 : merge D2 nil M
H41 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.5.2.1:

Variables: D1 G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1 M
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H39 : merge D' nil L1
H40 : merge D2 nil M
H41 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H31, apply H40), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D3, D2 = D5, D1' = D1'1, D2' = LL, G1 = G3, G2 = G5] split(split(split(split(split(split(apply H41, apply H34), apply H27), apply H12), apply H22), apply H14), apply H21))).
Subgoal 6.2.1.5.2.2:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L L1 M A1
           KK1 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' (tensor A B) D2
H11 : merge G3 G4 G2
H12 : adj D1'1 A D3
H13 : adj D2' B D4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G4
H20 : merge D4 nil D5
H21 : prove G5 D5
H22 : adj LL B D5
H27 : merge G3 G5 L
H31 : merge G2' nil L
H34 : merge D1'1 LL L1
H39 : merge D' nil L1
H40 : merge D2 nil M
H41 : adj L1 (tensor A B) M
H42 : adj KK1 A1 nil
H43 : adj LL1 A1 D1'
H44 : perm KK1 LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H42.
Subgoal 6.2.1.6:

Variables: D1 D1' G2 G2'
C <-- one
G1 <-- nil
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj nil bot G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge nil D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < case H9.
Subgoal 6.2.1.6:

Variables: D1 D1' G2'
C <-- one
G1 <-- nil
G2 <-- bot :: nil
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' one D1
H5 : adj G2' one (bot :: nil)
H6 : adj nil one D1
H8 : perm nil D1'
H10 : formula bot
H11 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge nil D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < case H5.
Subgoal 6.2.1.6:

Variables: D1 D1' K
C <-- one
G1 <-- nil
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' one D1
H6 : adj nil one D1
H8 : perm nil D1'
H10 : formula bot
H11 : is_list nil
H12 : formula bot
H13 : adj K one nil
============================
 exists G3 D3, merge (bot :: K) nil G3 /\ merge nil D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < case H13.
Subgoal 6.2.1.7:

Variables: D1 D1' G2 G2' D2 D'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' bot D2
H10 : prove G2 D' ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H10 H4 H5.
Subgoal 6.2.1.7:

Variables: D1 D1' G2 G2' D2 D' G3 D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' bot D2
H10 : prove G2 D' ***
H11 : merge G2' nil G3
H12 : merge D' D1' D3
H13 : prove G3 D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H12.
Subgoal 6.2.1.7:

Variables: D1 D1' G2 G2' D2 D' G3 D3 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' bot D2
H10 : prove G2 D' ***
H11 : merge G2' nil G3
H12 : merge D' D1' D3
H13 : prove G3 D3
H14 : merge D2 D1' M
H15 : adj D3 bot M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H11, apply H14), unfold(prove, 7, exists[D' = D3] split(apply H15, apply H13))).
Subgoal 6.2.1.8:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (par A B) D2
H10 : adj D4 A D3
H11 : adj D' B D4
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 6.2.1.8:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 G3 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (par A B) D2
H10 : adj D4 A D3
H11 : adj D' B D4
H12 : prove G2 D3 ***
H13 : merge G2' nil G3
H14 : merge D3 D1' D5
H15 : prove G3 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H10.
Subgoal 6.2.1.8:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 G3 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (par A B) D2
H10 : adj D4 A D3
H11 : adj D' B D4
H12 : prove G2 D3 ***
H13 : merge G2' nil G3
H14 : merge D3 D1' D5
H15 : prove G3 D5
H16 : adj LL A D5
H17 : merge D4 D1' LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H11.
Subgoal 6.2.1.8:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 G3 D5 LL LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (par A B) D2
H10 : adj D4 A D3
H11 : adj D' B D4
H12 : prove G2 D3 ***
H13 : merge G2' nil G3
H14 : merge D3 D1' D5
H15 : prove G3 D5
H16 : adj LL A D5
H17 : merge D4 D1' LL
H18 : adj LL1 B LL
H19 : merge D' D1' LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H19.
Subgoal 6.2.1.8:

Variables: D1 D1' G2 G2' D2 A B D' D3 D4 G3 D5 LL LL1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (par A B) D2
H10 : adj D4 A D3
H11 : adj D' B D4
H12 : prove G2 D3 ***
H13 : merge G2' nil G3
H14 : merge D3 D1' D5
H15 : prove G3 D5
H16 : adj LL A D5
H17 : merge D4 D1' LL
H18 : adj LL1 B LL
H19 : merge D' D1' LL1
H20 : merge D2 D1' M
H21 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H20), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H21, apply H16), apply H18), apply H15))).
Subgoal 6.2.1.9:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.9:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H16 : one = par A B /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H16.
Subgoal 6.2.1.9:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_unadj_3 to H10 H17.
Subgoal 6.2.1.9:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H18 : (exists JJ, adj JJ one G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 one G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H18.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_swap to H19 H12.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H22.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H21.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H27 : merge JJ nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H27 : merge JJ nil LL
H28 : is_list LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_2_is_list to H10.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H27 : merge JJ nil LL
H28 : is_list LL
H29 : is_list G2'1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to H28 H29.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H27 : merge JJ nil LL
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H20 : merge JJ G2'1 KK
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H31 : merge nil JJ LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply change_merge_order to H30 *H31 *H20.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H32 : merge nil KK L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H32.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply add_to_merge_left to H34 H33.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H38 : is_list D4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H38 : is_list D4
H39 : is_list D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_exists to *H39 *H38.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H24 : merge D3 D1' D5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H41 : merge D1' D3 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply change_merge_order to H40 *H41 *H11.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H42 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply merge_sym to *H42.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H43 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply adj_same_result to H35 H5.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H43 : merge D2 D1' L1
H44 : perm U1 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < apply perm_merge_1 to H36 H44.
Subgoal 6.2.1.9.1:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H43 : merge D2 D1' L1
H44 : perm U1 G2'
H45 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.9.1.1:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H43 : merge D2 nil L1
H44 : perm U1 G2'
H45 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H45, apply H43), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H37, apply H30), apply H40), apply H26), apply H13), apply H25), apply H15))).
Subgoal 6.2.1.9.1.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5 LL L U1
           M L1 A1 KK1 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj JJ one G1'
H21 : adj JJ A U
H22 : adj U one G3
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL A G5
H28 : is_list LL
H29 : is_list G2'1
H30 : merge LL G2'1 L
H33 : merge KK nil L
H34 : adj KK (par A B) U1
H35 : adj U1 one G2
H36 : merge U1 nil M
H37 : adj L (par A B) M
H40 : merge D5 D4 L1
H43 : merge D2 D1' L1
H44 : perm U1 G2'
H45 : merge G2' nil M
H46 : adj KK1 A1 nil
H47 : adj LL1 A1 D1'
H48 : perm KK1 LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H46.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_swap to H19 H13.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H22.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_unadj_1 to H23 H21.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H27 : merge KK1 nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_3_is_list to H27.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H27 : merge KK1 nil LL
H28 : is_list LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_1_is_list to H10.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H27 : merge KK1 nil LL
H28 : is_list LL
H29 : is_list G1'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H29.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H27 : merge KK1 nil LL
H30 : merge LL G1' L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H20 : merge G1' KK1 KK
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H31 : merge nil KK1 LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H20.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H31 : merge nil KK1 LL
H32 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply change_merge_order to H30 *H31 *H32.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H33 : merge nil KK L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H33.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H34 : merge KK nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_swap to H17 H9.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H34 : merge KK nil L
H35 : adj KK (par A B) U1
H36 : adj U1 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply add_to_merge_left to *H35 *H34.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H39 : is_list D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H39 : is_list D3
H40 : is_list D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_exists to *H40 *H39.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H24 : merge D4 D1' D5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H11 : merge D3 D4 D2
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H11.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply change_merge_order to H41 H42 H43.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H44 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_same_result to H36 H5.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
H46 : perm U1 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H46.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
H46 : perm U1 G2'
H47 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H41.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply merge_sym to H30.
Subgoal 6.2.1.9.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.9.2.1:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 6.2.1.9.2.1:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 merge G2' nil M /\ merge D2 nil L1 /\ prove M L1

28 other subgoals.

cut_admissibility < split.
Subgoal 6.2.1.9.2.1.1:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 merge G2' nil M

30 other subgoals.

cut_admissibility < search.
Witness: apply H47.
Subgoal 6.2.1.9.2.1.2:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 merge D2 nil L1

29 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 6.2.1.9.2.1.3:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 prove M L1

28 other subgoals.

cut_admissibility < unfold 9.
Subgoal 6.2.1.9.2.1.3:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

28 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 6.2.1.9.2.1.3:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

28 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 6.2.1.9.2.1.3:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 exists D1 D2, adj L (par A B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

28 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 6.2.1.9.2.1.3:

Variables: D1 G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L U1 M
           L1
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge nil D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 nil L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
============================
 adj L (par A B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

28 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H38, apply H49), apply H48), apply H12), apply H26), apply H14), apply H25).
Subgoal 6.2.1.9.2.2:

Variables: D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5 LL L
           U1 M L1 A1 KK2 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' (par A B) G2
H10 : merge G1' G2'1 G'
H12 : adj G1' A G3
H13 : adj G2'1 B G4
H14 : prove G3 D3 ***
H15 : prove G4 D4 ***
H17 : adj KK one G'
H19 : adj KK1 one G2'1
H21 : adj KK1 B U
H22 : adj U one G4
H23 : merge U nil G5
H25 : prove G5 D5
H26 : adj LL B G5
H30 : merge LL G1' L
H36 : adj U1 one G2
H37 : merge U1 nil M
H38 : adj L (par A B) M
H41 : merge D5 D3 L1
H42 : merge D1' D4 D5
H43 : merge D4 D3 D2
H45 : merge D2 D1' L1
H46 : perm U1 G2'
H47 : merge G2' nil M
H48 : merge D3 D5 L1
H49 : merge G1' LL L
H50 : adj KK2 A1 nil
H51 : adj LL1 A1 D1'
H52 : perm KK2 LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H50.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result_diff to H9 H5.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
H11 : zero = one /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H11.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
H12 : adj KK zero G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
H12 : adj KK zero G2'
H13 : is_list G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_1_is_list to H6.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
H12 : adj KK zero G2'
H13 : is_list G2'
H14 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H13 H14.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H10 : is_list D2
H12 : adj KK zero G2'
H14 : is_list nil
H15 : merge G2' nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H14.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H12 : adj KK zero G2'
H15 : merge G2' nil L
H16 : merge D2 nil L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H15 H12.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK L L1 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H12 : adj KK zero G2'
H15 : merge G2' nil L
H16 : merge D2 nil L1
H17 : adj LL zero L
H18 : merge KK nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_3_is_list to H16.
Subgoal 6.2.1.10:

Variables: D1 D1' G2 G2' D2 G' KK L L1 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' zero G2
H12 : adj KK zero G2'
H15 : merge G2' nil L
H16 : merge D2 nil L1
H17 : adj LL zero L
H18 : merge KK nil LL
H19 : is_list L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.10.1:

Variables: D1 G2 G2' D2 G' KK L L1 LL
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' zero G2
H12 : adj KK zero G2'
H15 : merge G2' nil L
H16 : merge D2 nil L1
H17 : adj LL zero L
H18 : merge KK nil LL
H19 : is_list L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H15, apply H16), unfold(prove, 10, exists[G' = LL] split(apply H17, apply H19))).
Subgoal 6.2.1.10.2:

Variables: D1 D1' G2 G2' D2 G' KK L L1 LL A KK1 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj G' zero G2
H12 : adj KK zero G2'
H15 : merge G2' nil L
H16 : merge D2 nil L1
H17 : adj LL zero L
H18 : merge KK nil LL
H19 : is_list L1
H20 : adj KK1 A nil
H21 : adj LL1 A D1'
H22 : perm KK1 LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H20.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H11 : is_list G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_1_is_list to H6.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D'
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H11 : is_list G2'
H12 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H11 H12.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D' L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H12 : is_list nil
H13 : merge G2' nil L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_3_is_list to H9.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D' L
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H12 : is_list nil
H13 : merge G2' nil L
H14 : is_list D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H14 *H12.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D' L L1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H13 : merge G2' nil L
H15 : merge D2 nil L1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_1 to H15 H9.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D' L L1 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H13 : merge G2' nil L
H15 : merge D2 nil L1
H16 : adj LL top L1
H17 : merge D' nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_3_is_list to H13.
Subgoal 6.2.1.11:

Variables: D1 D1' G2 G2' D2 D' L L1 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' top D2
H10 : is_list G2
H13 : merge G2' nil L
H15 : merge D2 nil L1
H16 : adj LL top L1
H17 : merge D' nil LL
H18 : is_list L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.1.11.1:

Variables: D1 G2 G2' D2 D' L L1 LL
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' top D2
H10 : is_list G2
H13 : merge G2' nil L
H15 : merge D2 nil L1
H16 : adj LL top L1
H17 : merge D' nil LL
H18 : is_list L
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H13, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 6.2.1.11.2:

Variables: D1 D1' G2 G2' D2 D' L L1 LL A KK LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H9 : adj D' top D2
H10 : is_list G2
H13 : merge G2' nil L
H15 : merge D2 nil L1
H16 : adj LL top L1
H17 : merge D' nil LL
H18 : is_list L
H19 : adj KK A nil
H20 : adj LL1 A D1'
H21 : perm KK LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H19.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H12 : one = with A B /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H12.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H15.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H16 H14.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL A G4
H20 : merge KK nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_swap to H13 H9.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL A G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply add_to_merge_left to H21 H20.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL A G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result to H22 H5.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL A G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
H25 : perm U1 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H25.
Subgoal 6.2.1.12:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' A G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK A U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL A G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
H25 : perm U1 G2'
H26 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H26, apply H17), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H24, apply H19), apply H18))).
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H12 : one = with A B /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H12.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H15.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H16 H14.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL B G4
H20 : merge KK nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_swap to H13 H9.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL B G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H21 H20.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL B G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_same_result to H22 H5.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL B G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
H25 : perm U1 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H25.
Subgoal 6.2.1.13:

Variables: D1 D1' G2 G2' D2 A B G' G3 KK U G4 D3 LL U1 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (with A B) G2
H10 : adj G' B G3
H11 : prove G3 D2 ***
H13 : adj KK one G'
H14 : adj KK B U
H15 : adj U one G3
H16 : merge U nil G4
H17 : merge D2 D1' D3
H18 : prove G4 D3
H19 : adj LL B G4
H20 : merge KK nil LL
H21 : adj KK (with A B) U1
H22 : adj U1 one G2
H23 : merge U1 nil M
H24 : adj LL (with A B) M
H25 : perm U1 G2'
H26 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H26, apply H17), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H24, apply H19), apply H18))).
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D2' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D2' D'
H15 : perm G3 G2
H16 : perm G4 G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_perm_result to H17 H5.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H18.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H10.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_sym to H16.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_perm_result to H25 H5.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H27 : perm G2' KK1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H26.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H27 : perm G2' KK1
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H29 H11.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H19 : perm G2' KK
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H27 : perm G2' KK1
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_sym to *H19.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H27 : perm G2' KK1
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H20 H33.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H27 : perm G2' KK1
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_sym to *H27.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H28 H35.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H34.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_2_is_list to H37.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H38 : is_list G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_refl to *H38.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H14.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_perm_det to H40 H24.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H24.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 6.2.1.14:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 merge G2' nil G5 /\ merge D2 D1' M /\ prove G5 M

22 other subgoals.

cut_admissibility < split.
Subgoal 6.2.1.14.1:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 merge G2' nil G5

24 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 6.2.1.14.2:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 merge D2 D1' M

23 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 6.2.1.14.3:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 prove G5 M

22 other subgoals.

cut_admissibility < unfold 14.
Subgoal 6.2.1.14.3:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

22 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 6.2.1.14.3:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

22 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 6.2.1.14.3:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

22 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 6.2.1.14.3:

Variables: D1 D1' G2 G2' D2 A B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6 D6 LL1
           M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (with A B) D2
H10 : adj D' A D3
H11 : adj D4' B D4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm D4' D'
H15 : perm G3 G2
H16 : perm G4 G2
H17 : perm G2 G3
H18 : adj KK one G3
H20 : merge KK nil G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D' D1' LL
H25 : perm G2 G4
H26 : adj KK1 one G4
H28 : merge KK1 nil G6
H29 : merge D4 D1' D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D4' D1' LL1
H33 : perm KK G2'
H34 : merge G2' nil G5
H35 : perm KK1 G2'
H36 : merge G2' nil G6
H37 : perm G6 G5
H39 : perm G5 G5
H40 : merge D' D1' LL1
H41 : perm LL1 LL
H42 : merge D2 D1' M
H43 : adj LL (with A B) M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

22 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H23), apply H31), apply H22), apply H30), apply H41), apply H39), apply H37).
Subgoal 6.2.1.15:

Variables: D1 D1' G2 G2' D2 A B D' D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' A D3
H11 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H5.
Subgoal 6.2.1.15:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' A D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H13 H10.
Subgoal 6.2.1.15:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' A D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
H15 : adj LL A D4
H16 : merge D' D1' LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H16.
Subgoal 6.2.1.15:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4 LL M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' A D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
H15 : adj LL A D4
H16 : merge D' D1' LL
H17 : merge D2 D1' M
H18 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H17), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H18, apply H15), apply H14))).
Subgoal 6.2.1.16:

Variables: D1 D1' G2 G2' D2 A B D' D3
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' B D3
H11 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H5.
Subgoal 6.2.1.16:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' B D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H13 H10.
Subgoal 6.2.1.16:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' B D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
H15 : adj LL B D4
H16 : merge D' D1' LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H9 H16.
Subgoal 6.2.1.16:

Variables: D1 D1' G2 G2' D2 A B D' D3 G3 D4 LL M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj D' (plus A B) D2
H10 : adj D' B D3
H11 : prove G2 D3 ***
H12 : merge G2' nil G3
H13 : merge D3 D1' D4
H14 : prove G3 D4
H15 : adj LL B D4
H16 : merge D' D1' LL
H17 : merge D2 D1' M
H18 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H17), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H18, apply H15), apply H14))).
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G2'1 B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G2'1 G'
H15 : perm D3 D2
H16 : perm D4 D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H9.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H17 : one = plus A B /\ perm G2' G' \/ (exists KK, adj KK one G')
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H17.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H20.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H19.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_sym to H14.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_perm_result to H26 H18.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H27 H11.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H30.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H31 H29.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H25 H28.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_perm_det to H35 H36.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_swap to H18 H9.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H38 H25.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_same_result to H39 H5.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H40 H42.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H22 H15.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_merge_1 to H32 H16.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_perm_det to H45 H44.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_2_is_list to H46.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H47 : is_list D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply perm_refl to *H47.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 6.2.1.17:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 merge G2' nil M /\ merge D2 D1' D5 /\ prove M D5

19 other subgoals.

cut_admissibility < split.
Subgoal 6.2.1.17.1:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 merge G2' nil M

21 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 6.2.1.17.2:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 merge D2 D1' D5

20 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 6.2.1.17.3:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 prove M D5

19 other subgoals.

cut_admissibility < unfold 17.
Subgoal 6.2.1.17.3:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

19 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 6.2.1.17.3:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

19 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 6.2.1.17.3:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

19 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 6.2.1.17.3:

Variables: D1 D1' G2 G2' D2 A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1 G6 D6
           LL1 U2 M
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : perm nil D1'
H9 : adj G' (plus A B) G2
H10 : adj G' A G3
H11 : adj G4' B G4
H12 : prove G3 D3 ***
H13 : prove G4 D4 ***
H14 : perm G4' G'
H15 : perm D3 D2
H16 : perm D4 D2
H18 : adj KK one G'
H19 : adj KK A U
H20 : adj U one G3
H21 : merge U nil G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A G5
H25 : merge KK nil LL
H26 : perm G' G4'
H27 : adj KK1 one G4'
H28 : perm KK KK1
H29 : adj KK1 B U1
H30 : adj U1 one G4
H31 : merge U1 nil G6
H32 : merge D4 D1' D6
H33 : prove G6 D6
H34 : adj LL1 B G6
H35 : merge KK1 nil LL1
H36 : merge KK1 nil LL
H37 : perm LL1 LL
H38 : adj KK (plus A B) U2
H39 : adj U2 one G2
H40 : merge U2 nil M
H41 : adj LL (plus A B) M
H42 : perm U2 G2'
H43 : merge G2' nil M
H44 : merge D2 D1' D5
H45 : merge D2 D1' D6
H46 : perm D6 D5
H48 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

19 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H41, apply H24), apply H34), apply H23), apply H33), apply H37), apply H48), apply H46).
Subgoal 6.2.2:

Variables: D1 D1' G2 G2' D2 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : adj KK one D1'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H6 H4.
Subgoal 6.2.2:

Variables: D1 D1' G2 G2' D2 KK
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : adj KK one D1'
H9 : perm nil D1'
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H9.
Subgoal 6.2.2.1:

Variables: D1 G2 G2' D2 KK
C <-- one
G1 <-- nil
D1' <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : adj KK one nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 nil D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H8.
Subgoal 6.2.2.2:

Variables: D1 D1' G2 G2' D2 KK A KK1 LL
C <-- one
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj nil one D1
H8 : adj KK one D1'
H10 : adj KK1 A nil
H11 : adj LL A D1'
H12 : perm KK1 LL
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H10.
Subgoal 6.3:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' one G1
H7 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H4 H5.
Subgoal 6.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H8.
Subgoal 6.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
H11 : merge G2' G1 M
H12 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H11, apply H9), unfold(prove, 3, exists[G' = G3] split(apply H12, apply H10))).
Subgoal 6.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 6.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H7.
Subgoal 6.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H8.
Subgoal 6.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H16.
Subgoal 6.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
H17 : merge G2' G1 M
H18 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H17, apply H11), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H18, apply H13), apply H15), apply H12))).
Subgoal 6.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : one = tensor A B /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H13.
Subgoal 6.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_3 to H7 H14.
Subgoal 6.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H15 : (exists JJ, adj JJ one D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 one D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H15.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H16 H9.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list G4
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H26 *H25.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H28.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H30 H24 H17.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H32 H31.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 one D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H27 H20 H8.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 one D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result to H33 H4.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 one D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H37.
Subgoal 6.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj JJ one D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U one D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 one D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
H38 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H36, apply H38), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H35, apply H30), apply H27), apply H23), apply H10), apply H22), apply H12))).
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H19 H5.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to H25 H26.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to H29 H30.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H31 H24 H33.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_sym to H8.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H28 H20 H41.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < exists L, M.
Subgoal 6.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

15 other subgoals.

cut_admissibility < split.
Subgoal 6.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L

17 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 6.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge D2 D1' M

16 other subgoals.

cut_admissibility < search.
Witness: apply H40.
Subgoal 6.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 prove L M

15 other subgoals.

cut_admissibility < unfold 5.
Subgoal 6.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

15 other subgoals.

cut_admissibility < exists A, B, L1.
Subgoal 6.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

15 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 6.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G1 G2, adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

15 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 6.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D'
H16 : adj KK1 one D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U one D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 one D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

15 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H38, apply H32), apply H27), apply H9), apply H23), apply H11), apply H22).
Subgoal 6.6:

Variables: G1 D1' G2 G2' D2
C <-- one
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' one nil
H5 : adj G2' one G2
H6 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H4.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H8 : one = bot /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H8.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H9 H5.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H9 H6.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H11.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U one D1
H15 : merge D2 U M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H14 H4.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U one D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_2 to H15 H17.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U one D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
H18 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H10.
Subgoal 6.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK one D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U one D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
H18 : merge D2 D1' M
H19 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H10, apply H18), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H12))).
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H10 : one = par A B /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H10.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H13 H7.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H14.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H20 H12.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H11 H6.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H23 H22.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 one D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result to H24 H4.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 one D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_2 to H25 H27.
Subgoal 6.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK one D'
H12 : adj KK B U
H13 : adj U one D4
H14 : adj U A U1
H15 : adj U1 one D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 one D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
H28 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H28), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H26, apply H19), apply H21), apply H18))).
Subgoal 6.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_3 to H8 H4.
Subgoal 6.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : (exists JJ, adj JJ one D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK one D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H13.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H14 H5.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H9.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H7.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H24.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H27 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H27 : is_list D4
H28 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H27.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H29 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H29 H17 H15.
Subgoal 6.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ one D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H29 : merge D5 D4 L1
H30 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H25, apply H30), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H26, apply H23), apply H29), apply H19), apply H10), apply H18), apply H12))).
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H14 H5.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_sym to H23.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_sym to H7.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H25.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H26.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H29 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H29 : is_list D5
H30 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply change_merge_order to H31 H17 H33.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 6.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

11 other subgoals.

cut_admissibility < split.
Subgoal 6.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M

13 other subgoals.

cut_admissibility < search.
Witness: apply H27.
Subgoal 6.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge D2 D1' L1

12 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 6.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 prove M L1

11 other subgoals.

cut_admissibility < unfold 9.
Subgoal 6.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

11 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 6.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

11 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 6.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists D1 D2, adj L (par A B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

11 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 6.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK one D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 adj L (par A B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

11 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H28, apply H24), apply H32), apply H9), apply H19), apply H11), apply H18).
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H9.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
H13 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H6.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H14.
Subgoal 6.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H10, apply H14), unfold(prove, 10, exists[G' = LL] split(apply H15, apply H17))).
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H7 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H7 : is_list G1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H7.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to H11 H12.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H14 : top = one /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H14.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H13 H15.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H9.
Subgoal 6.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
H18 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H9, apply H13), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 6.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 6.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 6.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 6.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 6.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 6.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 6.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 6.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H14 : one = with A B /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < case H14.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H15 H7.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H17 H5.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_sym to H11.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_perm_result to H23 H15.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H24 H8.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H27 H5.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H29 H26.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H12.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H13.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H33.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_2_is_list to H35.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_refl to *H36.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H25.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H38.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_swap to H15 H6.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H40 H22.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result to H41 H4.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply perm_merge_2 to H42 H44.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 6.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

6 other subgoals.

cut_admissibility < split.
Subgoal 6.14.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5

8 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 6.14.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge D2 D1' M

7 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 6.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 prove G5 M

6 other subgoals.

cut_admissibility < unfold 14.
Subgoal 6.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

6 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 6.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

6 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 6.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

6 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 6.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK one D'
H16 : adj KK A U
H17 : adj U one D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 one D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 one D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 one D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

6 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H21), apply H31), apply H20), apply H30), apply H39), apply H37), apply H35).
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H9 : one = plus A B /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < case H9.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 6.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK A U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H9 : one = plus A B /\ perm D1' D' \/ (exists KK, adj KK one D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < case H9.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 6.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK one D'
H11 : adj KK B U
H12 : adj U one D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 one D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_sym to H12.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_perm_result to H14 H4.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H7.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_sym to H13.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_perm_result to H22 H4.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H23 H5.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H25 H8.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H29 H11.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_perm_det to H30 H21.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H21.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_sym to *H16.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H34.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H26 H36.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H39 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 6.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

3 other subgoals.

cut_admissibility < split.
Subgoal 6.17.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M

5 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 6.17.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge D2 D1' D5

4 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 6.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 prove M D5

3 other subgoals.

cut_admissibility < unfold 17.
Subgoal 6.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

3 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 6.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

3 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 6.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

3 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 6.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- one
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula one @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' one D1
H5 : adj G2' one G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK one D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 one D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

3 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H33, apply H20), apply H28), apply H19), apply H27), apply H31), apply H40), apply H38).
Subgoal 7:

Variables: G1 D1 D1' G2 G2' D2
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < case H2 (keep).
Subgoal 7.1:

Variables: G1 D1 D1' G2 G2' D2 A
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj nil (atom A) G1
H7 : adj nil (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H6.
Subgoal 7.1:

Variables: D1 D1' G2 G2' D2 A
C <-- bot
G1 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove (atom A :: nil) D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H7 : adj nil (atom A) D1
H8 : formula (atom A)
H9 : is_list nil
============================
 exists G3 D3, merge G2' (atom A :: nil) G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H7.
Subgoal 7.1:

Variables: D1' G2 G2' D2 A
C <-- bot
G1 <-- atom A :: nil
D1 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove (atom A :: nil) (atom A :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot (atom A :: nil)
H5 : adj G2' bot G2
H8 : formula (atom A)
H9 : is_list nil
H10 : formula (atom A)
H11 : is_list nil
============================
 exists G3 D3, merge G2' (atom A :: nil) G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H4.
Subgoal 7.1:

Variables: G2 G2' D2 A K
C <-- bot
G1 <-- atom A :: nil
D1 <-- atom A :: nil
D1' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove (atom A :: nil) (atom A :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' bot G2
H8 : formula (atom A)
H9 : is_list nil
H10 : formula (atom A)
H11 : is_list nil
H12 : formula (atom A)
H13 : adj K bot nil
============================
 exists G3 D3, merge G2' (atom A :: nil) G3 /\ merge D2 (atom A :: K) D3 /\
   prove G3 D3

18 other subgoals.

cut_admissibility < case H13.
Subgoal 7.2:

Variables: D1 D1' G2 G2' D2
C <-- bot
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H6.
Subgoal 7.2:

Variables: D1' G2 G2' D2
C <-- bot
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot (one :: nil)
H5 : adj G2' bot G2
H7 : formula one
H8 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H4.
Subgoal 7.2:

Variables: G2 G2' D2 K
C <-- bot
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' bot G2
H7 : formula one
H8 : is_list nil
H9 : formula one
H10 : adj K bot nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H10.
Subgoal 7.3:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' one G1
H7 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H4 H5.
Subgoal 7.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H8.
Subgoal 7.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
H11 : merge G2' G1 M
H12 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H11, apply H9), unfold(prove, 3, exists[G' = G3] split(apply H12, apply H10))).
Subgoal 7.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 7.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H7.
Subgoal 7.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H8.
Subgoal 7.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H16.
Subgoal 7.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
H17 : merge G2' G1 M
H18 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H17, apply H11), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H18, apply H13), apply H15), apply H12))).
Subgoal 7.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : bot = tensor A B /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H13.
Subgoal 7.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_3 to H7 H14.
Subgoal 7.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H15 : (exists JJ, adj JJ bot D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 bot D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < case H15.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H16 H9.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list G4
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H26 *H25.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H28.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H30 H24 H17.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H32 H31.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 bot D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply change_merge_order to H27 H20 H8.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 bot D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result to H33 H4.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 bot D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H37.
Subgoal 7.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj JJ bot D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U bot D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A B) U1
H33 : adj U1 bot D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
H38 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H36, apply H38), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H35, apply H30), apply H27), apply H23), apply H10), apply H22), apply H12))).
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H19 H5.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to H25 H26.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to H29 H30.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H31 H24 H33.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_sym to H8.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H28 H20 H41.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < exists L, M.
Subgoal 7.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

14 other subgoals.

cut_admissibility < split.
Subgoal 7.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L

16 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 7.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge D2 D1' M

15 other subgoals.

cut_admissibility < search.
Witness: apply H40.
Subgoal 7.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 prove L M

14 other subgoals.

cut_admissibility < unfold 5.
Subgoal 7.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

14 other subgoals.

cut_admissibility < exists A, B, L1.
Subgoal 7.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

14 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 7.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G1 G2, adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

14 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 7.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L L1 U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D'
H16 : adj KK1 bot D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U bot D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A B) U1
H36 : adj U1 bot D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

14 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H38, apply H32), apply H27), apply H9), apply H23), apply H11), apply H22).
Subgoal 7.6:

Variables: G1 D1' G2 G2' D2
C <-- bot
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot nil
H5 : adj G2' bot G2
H6 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H4.
Subgoal 7.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H8 : bot = bot /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H8.
Subgoal 7.7.1:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 7.7.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' A
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil (atom A) G2
H11 : adj nil (atom A) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H10.
Subgoal 7.7.1.1:

Variables: G1 D1 D1' G2' D2 D' A
C <-- bot
G2 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot (atom A :: nil)
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H11 : adj nil (atom A) D2
H12 : formula (atom A)
H13 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H5.
Subgoal 7.7.1.1:

Variables: G1 D1 D1' D2 D' A K
C <-- bot
G2 <-- atom A :: nil
G2' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' bot D1
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H11 : adj nil (atom A) D2
H12 : formula (atom A)
H13 : is_list nil
H14 : formula (atom A)
H15 : adj K bot nil
============================
 exists G3 D3, merge (atom A :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H15.
Subgoal 7.7.1.2:

Variables: G1 D1 D1' G2' D2 D'
C <-- bot
G2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot nil
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H5.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H12 : bot = one /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < case H12.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H13.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H14.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U bot G2
H19 : merge U G1 M
H20 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply adj_same_result to H18 H5.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U bot G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply perm_merge_1 to H19 H21.
Subgoal 7.7.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK bot G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U bot G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
H22 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H22, apply H15), unfold(prove, 3, exists[G' = G3] split(apply H20, apply H16))).
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H14 : bot = tensor A B /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < case H14.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H15 H12.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H17 H11.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H16.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H15 H10.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply add_to_merge_left to H27 H26.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 bot G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result to H28 H5.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 bot G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
H31 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H31.
Subgoal 7.7.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK bot G'
H16 : adj KK B U
H17 : adj U bot G4
H18 : adj U A U1
H19 : adj U1 bot G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 bot G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
H31 : perm U2 G2'
H32 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H32, apply H21), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H30, apply H23), apply H25), apply H22))).
Subgoal 7.7.1.5:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_3 to H12 H5.
Subgoal 7.7.1.5:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : (exists JJ, adj JJ bot G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK bot G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H17.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H18.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H13.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
H26 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply change_merge_order to H27 H28 H19.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H29 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply change_merge_order to H33 H34 H11.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H35 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D'1 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H36.
Subgoal 7.7.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ bot G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D'1 D1' L1
H37 : merge D2 D1' M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H37), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H27), apply H23), apply H14), apply H22), apply H16))).
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H18.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H14.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
H26 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
H29 : merge KK G3 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply change_merge_order to H27 *H28 *H29.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H30 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H30.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
H33 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H11.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
H36 : merge D2' D1'1 D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply change_merge_order to H34 *H35 *H36.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H37 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H37.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H38.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < exists L, M.
Subgoal 7.7.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

25 other subgoals.

cut_admissibility < split.
Subgoal 7.7.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L

27 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 7.7.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge D2 D1' M

26 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 7.7.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 prove L M

25 other subgoals.

cut_admissibility < unfold 5.
Subgoal 7.7.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

25 other subgoals.

cut_admissibility < exists A, B, L1.
Subgoal 7.7.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

25 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 7.7.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G1 G2, adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

25 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 7.7.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

25 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H40, apply H42), apply H41), apply H13), apply H23), apply H15), apply H22).
Subgoal 7.7.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply perm_merge_1_nil to H9.
Subgoal 7.7.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 7.7.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
H12 : is_list G1
H13 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply list_merge_2 to *H12.
Subgoal 7.7.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
H13 : is_list D1
H14 : merge nil G1 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result to H10 H5.
Subgoal 7.7.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
H13 : is_list D1
H14 : merge nil G1 G1
H15 : perm nil G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H15.
Subgoal 7.7.1.6.1:

Variables: G1 D1 D1' G2 D'
C <-- bot
G2' <-- nil
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj nil bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
H13 : is_list D1
H14 : merge nil G1 G1
============================
 exists G3 D3, merge nil G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G1, D3 = D'] split(split(apply H14, apply H11), apply H7).
Subgoal 7.7.1.6.2:

Variables: G1 D1 D1' G2 G2' D' A KK LL
C <-- bot
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj nil bot G2
H11 : merge nil D1' D'
H13 : is_list D1
H14 : merge nil G1 G1
H16 : adj KK A nil
H17 : adj LL A G2'
H18 : perm KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H16.
Subgoal 7.7.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H5.
Subgoal 7.7.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 G3 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
H12 : merge G2' G1 G3
H13 : merge D'1 D1' D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H13.
Subgoal 7.7.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 G3 D3 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
H12 : merge G2' G1 G3
H13 : merge D'1 D1' D3
H14 : prove G3 D3
H15 : merge D2 D1' M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H15), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H14))).
Subgoal 7.7.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H5.
Subgoal 7.7.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H15 H11.
Subgoal 7.7.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H12.
Subgoal 7.7.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H20.
Subgoal 7.7.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D'1 D1' LL1
H21 : merge D2 D1' M
H22 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H14, apply H21), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H22, apply H17), apply H19), apply H16))).
Subgoal 7.7.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : bot = par A B /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H17.
Subgoal 7.7.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_3 to H11 H18.
Subgoal 7.7.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H19 : (exists JJ, adj JJ bot G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 bot G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H19.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H20 H13.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H23.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H29 : is_list LL
H30 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H31 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H21.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H33 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H33.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H35 H34.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result to H36 H5.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H39.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H41.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply change_merge_order to H43 H44 H12.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H45 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_sym to *H45.
Subgoal 7.7.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj JJ bot G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U bot G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 bot G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H46 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H40, apply H46), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H38, apply H31), apply H43), apply H27), apply H14), apply H26), apply H16))).
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H20 H14.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H23.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
H30 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H31 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H21.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H33.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H34 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H34.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H36 H35.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result to H37 H5.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H38 H40.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
H43 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H43.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H12.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H44 H45 H46.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H47 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H47.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H31.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 7.7.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

21 other subgoals.

cut_admissibility < split.
Subgoal 7.7.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M

23 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 7.7.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge D2 D1' L1

22 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 7.7.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 prove M L1

21 other subgoals.

cut_admissibility < unfold 9.
Subgoal 7.7.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

21 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 7.7.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

21 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 7.7.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists D1 D2, adj L (par A B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

21 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 7.7.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK bot G'
H20 : adj KK1 bot G2'1
H22 : adj KK1 B U
H23 : adj U bot G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 bot G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 adj L (par A B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

21 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H39, apply H50), apply H49), apply H13), apply H27), apply H15), apply H26).
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_same_result_diff to H10 H5.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H12 : zero = bot /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H12.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H16 *H14.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H13.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H20 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H11 *H20.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H21.
Subgoal 7.7.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
H22 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H17, apply H21), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H22))).
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H12 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H12 : is_list G2'
H13 : is_list G1
H14 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply adj_3_is_list to H10.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
H17 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_exists to *H17 *H16.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H10.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_3_is_list to H15.
Subgoal 7.7.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D'1 D1' LL
H21 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H15, apply H18), unfold(prove, 11, exists[D' = LL] split(apply H19, apply H21))).
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H13 : bot = with A B /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < case H13.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 7.7.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK A U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H13 : bot = with A B /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H13.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 7.7.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK bot G'
H15 : adj KK B U
H16 : adj U bot G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 bot G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D2' D3 D4 G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D2' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D2' D'1
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to H16.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_perm_result to H18 H5.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H11.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to H17.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_perm_result to H26 H5.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H28 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H27.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H30 H12.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to *H20.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_1 to H21 H34.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_sym to *H28.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H36.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H39 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H15.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_perm_det to H41 H25.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H25.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 7.7.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

16 other subgoals.

cut_admissibility < split.
Subgoal 7.7.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge G2' G1 G5

18 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 7.7.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge D2 D1' M

17 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 7.7.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 prove G5 M

16 other subgoals.

cut_admissibility < unfold 14.
Subgoal 7.7.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

16 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 7.7.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

16 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 7.7.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

16 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 7.7.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK bot G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 bot G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

16 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H44, apply H24), apply H32), apply H23), apply H31), apply H42), apply H40), apply H38).
Subgoal 7.7.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 7.7.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 7.7.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 7.7.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D'1 D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 7.7.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 7.7.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 7.7.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 7.7.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D'1 D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G2'1 G3 G4 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G2'1 B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G2'1 G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H18 : bot = plus A B /\ perm G2' G' \/ (exists KK, adj KK bot G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H18.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H19 H11.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H21.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H20.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_perm_result to H27 H19.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H28 H12.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H31.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H30.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H29.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H37.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H19 H10.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_left to H39 H26.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H40 H5.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H43.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H16.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H17.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_perm_det to H46 H45.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_2_is_list to H47.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H48 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_refl to *H48.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 7.7.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

13 other subgoals.

cut_admissibility < split.
Subgoal 7.7.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M

15 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 7.7.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge D2 D1' D5

14 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 7.7.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 prove M D5

13 other subgoals.

cut_admissibility < unfold 17.
Subgoal 7.7.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

13 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 7.7.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

13 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 7.7.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

13 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 7.7.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : perm D1' D'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK bot G'
H20 : adj KK A U
H21 : adj U bot G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 bot G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 bot G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 bot G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

13 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H42, apply H25), apply H35), apply H24), apply H34), apply H38), apply H49), apply H47).
Subgoal 7.7.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H9 H5.
Subgoal 7.7.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK bot D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H9 H11.
Subgoal 7.7.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK bot D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : merge D2 D' M
H14 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result to H6 H4.
Subgoal 7.7.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK bot D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : merge D2 D' M
H14 : adj D3 bot M
H15 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_2 to H13 H15.
Subgoal 7.7.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK bot D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : merge D2 D' M
H14 : adj D3 bot M
H15 : perm D' D1'
H16 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H10, apply H16), unfold(prove, 7, exists[D' = D3] split(apply H14, apply H12))).
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H10 : bot = par A B /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H10.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H13 H7.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H14.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H20 H12.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H11 H6.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H23 H22.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 bot D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result to H24 H4.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 bot D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H25 H27.
Subgoal 7.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK bot D'
H12 : adj KK B U
H13 : adj U bot D4
H14 : adj U A U1
H15 : adj U1 bot D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 bot D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
H28 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H28), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H26, apply H19), apply H21), apply H18))).
Subgoal 7.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_3 to H8 H4.
Subgoal 7.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : (exists JJ, adj JJ bot D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK bot D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H13.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H14 H5.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H9.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H7.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H24.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H27 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H27 : is_list D4
H28 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H27.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H29 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply change_merge_order to H29 H17 H15.
Subgoal 7.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ bot D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A B) M
H29 : merge D5 D4 L1
H30 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H25, apply H30), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H26, apply H23), apply H29), apply H19), apply H10), apply H18), apply H12))).
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H14 H5.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_sym to H23.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_sym to H7.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H25.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H26.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H29 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H29 : is_list D5
H30 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply change_merge_order to H31 H17 H33.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 7.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

10 other subgoals.

cut_admissibility < split.
Subgoal 7.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M

12 other subgoals.

cut_admissibility < search.
Witness: apply H27.
Subgoal 7.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge D2 D1' L1

11 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 7.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 prove M L1

10 other subgoals.

cut_admissibility < unfold 9.
Subgoal 7.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

10 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 7.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

10 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 7.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists D1 D2, adj L (par A B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

10 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 7.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK bot D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 adj L (par A B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

10 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H28, apply H24), apply H32), apply H9), apply H19), apply H11), apply H18).
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H9.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
H13 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H6.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H14.
Subgoal 7.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H10, apply H14), unfold(prove, 10, exists[G' = LL] split(apply H15, apply H17))).
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H7 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H7 : is_list G1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H7.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to H11 H12.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H14 : top = bot /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H14.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H13 H15.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_3_is_list to H9.
Subgoal 7.11:

Variables: G1 D1 D1' G2 G2' D2 D' L L1 KK LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
H18 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H9, apply H13), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 7.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 7.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 7.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 7.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 7.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 7.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 7.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 7.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H14 : bot = with A B /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < case H14.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H15 H7.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H17 H5.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_sym to H11.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_perm_result to H23 H15.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H24 H8.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H27 H5.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H29 H26.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H12.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H13.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H33.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_2_is_list to H35.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_refl to *H36.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H25.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H38.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_swap to H15 H6.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H40 H22.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply adj_same_result to H41 H4.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply perm_merge_2 to H42 H44.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 7.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

5 other subgoals.

cut_admissibility < split.
Subgoal 7.14.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5

7 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 7.14.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge D2 D1' M

6 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 7.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 prove G5 M

5 other subgoals.

cut_admissibility < unfold 14.
Subgoal 7.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

5 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 7.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

5 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 7.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

5 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 7.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK bot D'
H16 : adj KK A U
H17 : adj U bot D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 bot D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 bot D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 bot D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

5 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H21), apply H31), apply H20), apply H30), apply H39), apply H37), apply H35).
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H9 : bot = plus A B /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < case H9.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 7.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK A U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H9 : bot = plus A B /\ perm D1' D' \/ (exists KK, adj KK bot D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < case H9.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 7.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK bot D'
H11 : adj KK B U
H12 : adj U bot D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 bot D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_sym to H12.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_perm_result to H14 H4.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H7.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_sym to H13.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_perm_result to H22 H4.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H23 H5.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_unadj_2 to H25 H8.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_merge_2 to H29 H11.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_perm_det to H30 H21.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H21.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_sym to *H16.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H34.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_sym to *H24.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_merge_2 to H26 H36.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H39 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 7.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

2 other subgoals.

cut_admissibility < split.
Subgoal 7.17.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M

4 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 7.17.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge D2 D1' D5

3 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 7.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 prove M D5

2 other subgoals.

cut_admissibility < unfold 17.
Subgoal 7.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

2 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 7.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

2 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 7.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

2 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 7.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- bot
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula bot @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' bot D1
H5 : adj G2' bot G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK bot D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 bot D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

2 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H33, apply H20), apply H28), apply H19), apply H27), apply H31), apply H40), apply H38).
Subgoal 8:

Variables: G1 D1 D1' G2 G2' D2
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < case H2 (keep).
Subgoal 8.1:

Variables: G1 D1 D1' G2 G2' D2 A
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj nil (atom A) G1
H7 : adj nil (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H7.
Subgoal 8.1:

Variables: G1 D1' G2 G2' D2 A
C <-- top
D1 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' top (atom A :: nil)
H5 : adj G2' top G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H4.
Subgoal 8.1:

Variables: G1 G2 G2' D2 A K
C <-- top
D1 <-- atom A :: nil
D1' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 (atom A :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' top G2
H6 : adj nil (atom A) G1
H8 : formula (atom A)
H9 : is_list nil
H10 : formula (atom A)
H11 : adj K top nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 (atom A :: K) D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H11.
Subgoal 8.2:

Variables: D1 D1' G2 G2' D2
C <-- top
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H6.
Subgoal 8.2:

Variables: D1' G2 G2' D2
C <-- top
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' top (one :: nil)
H5 : adj G2' top G2
H7 : formula one
H8 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H4.
Subgoal 8.2:

Variables: G2 G2' D2 K
C <-- top
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' top G2
H7 : formula one
H8 : is_list nil
H9 : formula one
H10 : adj K top nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H10.
Subgoal 8.3:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' one G1
H7 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H4 H5.
Subgoal 8.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H8.
Subgoal 8.3:

Variables: G1 D1 D1' G2 G2' D2 G' G3 D3 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
H11 : merge G2' G1 M
H12 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H11, apply H9), unfold(prove, 3, exists[G' = G3] split(apply H12, apply H10))).
Subgoal 8.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 8.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H7.
Subgoal 8.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H8.
Subgoal 8.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H16.
Subgoal 8.4:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G5 D3 LL LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (tensor A B) G1
H7 : adj G4 A G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
H17 : merge G2' G1 M
H18 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H17, apply H11), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H18, apply H13), apply H15), apply H12))).
Subgoal 8.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : top = tensor A B /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H13.
Subgoal 8.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_3 to H7 H14.
Subgoal 8.5:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H15 : (exists JJ, adj JJ top D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 top D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H15.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H16 H9.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H10.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H25 : is_list LL
H26 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H28 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H28 : is_list G4
H29 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H28.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H27 H24 H17.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H32 H31.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 top D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_same_result to H33 H4.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 top D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H36.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 top D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
H37 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply change_merge_order to H30 H20 H8.
Subgoal 8.5.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5 LL L
           L1 U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj JJ top D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A U
H19 : adj U top D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D2 JJ LL
H27 : merge LL D2' L
H30 : merge G5 G4 L1
H31 : merge D2 KK L
H32 : adj KK (tensor A B) U1
H33 : adj U1 top D1
H34 : merge D2 U1 M
H35 : adj L (tensor A B) M
H36 : perm U1 D1'
H37 : merge D2 D1' M
H38 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L1, D3 = M] split(split(apply H38, apply H37), unfold(prove, 5, exists[A = A, B = B, D' = L, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H35, apply H27), apply H30), apply H23), apply H10), apply H22), apply H12))).
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H19 H5.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_1_is_list to H9.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list LL
H26 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to *H17.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H27 H24 H28.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H30 H29.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H31 H4.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_2 to H32 H34.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to H37 H36.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to *H8.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H38 H20 H39.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H27 : merge LL D1'1 L
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to *H27.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H38 : merge G5 G3 L1
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_sym to *H38.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < exists L1, M.
Subgoal 8.5.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge G2' G1 L1 /\ merge D2 D1' M /\ prove L1 M

13 other subgoals.

cut_admissibility < split.
Subgoal 8.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge G2' G1 L1

15 other subgoals.

cut_admissibility < search.
Witness: apply H40.
Subgoal 8.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 merge D2 D1' M

14 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 8.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 prove L1 M

13 other subgoals.

cut_admissibility < unfold 5.
Subgoal 8.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

13 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 8.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists D1 D2 D1' D2' G1 G2, adj L (tensor A B) M /\ merge D1' D2' L /\
   merge G1 G2 L1 /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

13 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 8.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 exists G1 G2, adj L (tensor A B) M /\ merge D1'1 LL L /\ merge G1 G2 L1 /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

13 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 8.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5 LL
           L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (tensor A B) D1
H7 : merge D1'1 D2' D'
H9 : adj D1'1 A D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D'
H16 : adj KK1 top D2'
H18 : adj KK1 B U
H19 : adj U top D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H28 : merge KK1 D1'1 KK
H29 : merge D2 KK L
H30 : adj KK (tensor A B) U1
H31 : adj U1 top D1
H32 : merge D2 U1 M
H33 : adj L (tensor A B) M
H34 : perm U1 D1'
H35 : merge D2 D1' M
H36 : is_list G3
H37 : is_list G5
H39 : merge G4 G3 G1
H40 : merge G2' G1 L1
H41 : merge D1'1 LL L
H42 : merge G3 G5 L1
============================
 adj L (tensor A B) M /\ merge D1'1 LL L /\ merge G3 G5 L1 /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

13 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H33, apply H41), apply H42), apply H9), apply H23), apply H11), apply H22).
Subgoal 8.6:

Variables: G1 D1' G2 G2' D2
C <-- top
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' top nil
H5 : adj G2' top G2
H6 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H6.
Subgoal 8.6:

Variables: D1' G2 G2' D2
C <-- top
G1 <-- bot :: nil
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove (bot :: nil) nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' top nil
H5 : adj G2' top G2
H7 : formula bot
H8 : is_list nil
============================
 exists G3 D3, merge G2' (bot :: nil) G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H4.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H8 : top = bot /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H8.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H9 H5.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_swap to H9 H6.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H11.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U top D1
H15 : merge D2 U M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_same_result to H14 H4.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U top D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_2 to H15 H17.
Subgoal 8.7:

Variables: G1 D1 D1' G2 G2' D2 D' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK top D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U top D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
H18 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H10, apply H18), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H12))).
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H10 : top = par A B /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H10.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H13 H7.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H14.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H20 H12.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H11 H6.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H23 H22.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 top D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H24 H4.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 top D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H25 H27.
Subgoal 8.8:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (par A B) D1
H7 : adj D4 A D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK top D'
H12 : adj KK B U
H13 : adj U top D4
H14 : adj U A U1
H15 : adj U1 top D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A B) U2
H24 : adj U2 top D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A B) M
H27 : perm U2 D1'
H28 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H28), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H26, apply H19), apply H21), apply H18))).
Subgoal 8.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_3 to H8 H4.
Subgoal 8.9:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : (exists JJ, adj JJ top D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK top D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H13.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H14 H5.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H9.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
H23 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list D5
H23 : is_list G2'1
H24 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H23.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H22 : is_list D5
H24 : is_list D4
H25 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_exists to *H22 *H24.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply change_merge_order to H25 H20 H7.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H27.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
H28 : merge G2' G1 M
H29 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply change_merge_order to H26 H17 H15.
Subgoal 8.9.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ top D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A G5
H20 : merge G2' G1' LL
H25 : merge LL G2'1 L
H26 : merge D5 D4 L1
H27 : merge G2' G' L
H28 : merge G2' G1 M
H29 : adj L (par A B) M
H30 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H28, apply H30), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H29, apply H25), apply H26), apply H19), apply H10), apply H18), apply H12))).
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H14 H5.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_1_is_list to H9.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
H23 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
H23 : is_list D5
H24 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H22 *H21.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : is_list D5
H24 : is_list D3
H25 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H24 *H23.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_sym to H25.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_sym to H7.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply change_merge_order to H27 H20 H28.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H29.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_sym to H26.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply change_merge_order to H32 H17 H33.
Subgoal 8.9.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (par A B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK top D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H25 : merge G1' LL L
H26 : merge D3 D5 L1
H27 : merge LL G1' L
H28 : merge G2'1 G1' G'
H29 : merge G2' G' L
H30 : merge G2' G1 M
H31 : adj L (par A B) M
H32 : merge D5 D3 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H30, apply H34), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G3, G2 = G5, G1' = G1', G2' = LL, D1 = D3, D2 = D5] split(split(split(split(split(split(apply H31, apply H25), apply H26), apply H9), apply H19), apply H11), apply H18))).
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to H8 H9.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to H13 H11.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_3_is_list to H14.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
H15 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H6.
Subgoal 8.10:

Variables: G1 D1 D1' G2 G2' D2 G' L L1 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
H10 : merge G2' G1 L
H11 : is_list D1'
H12 : is_list G2
H13 : is_list D2
H14 : merge D2 D1' L1
H15 : is_list L1
H16 : adj LL zero L
H17 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H10, apply H14), unfold(prove, 10, exists[G' = LL] split(apply H16, apply H15))).
Subgoal 8.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 8.11:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H8 : top = top /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < case H8.
Subgoal 8.11.1:

Variables: G1 D1 D1' G2 G2' D2 D'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 8.11.1.1:

Variables: G1 D1 D1' G2 G2' D2 D' A
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj nil (atom A) G2
H11 : adj nil (atom A) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H10.
Subgoal 8.11.1.1:

Variables: G1 D1 D1' G2' D2 D' A
C <-- top
G2 <-- atom A :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top (atom A :: nil)
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H11 : adj nil (atom A) D2
H12 : formula (atom A)
H13 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H5.
Subgoal 8.11.1.1:

Variables: G1 D1 D1' D2 D' A K
C <-- top
G2 <-- atom A :: nil
G2' <-- atom A :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove (atom A :: nil) D2 @@@
H4 : adj D1' top D1
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H11 : adj nil (atom A) D2
H12 : formula (atom A)
H13 : is_list nil
H14 : formula (atom A)
H15 : adj K top nil
============================
 exists G3 D3, merge (atom A :: K) G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H15.
Subgoal 8.11.1.2:

Variables: G1 D1 D1' G2' D2 D'
C <-- top
G2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top nil
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < case H5.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H12 : top = one /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H12.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H13.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H14.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U top G2
H19 : merge U G1 M
H20 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result to H18 H5.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U top G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H19 H21.
Subgoal 8.11.1.3:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK G3 D3 U M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK top G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U top G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
H22 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H22, apply H15), unfold(prove, 3, exists[G' = G3] split(apply H20, apply H16))).
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H14 : top = tensor A B /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H14.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H15 H12.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H17 H11.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H16.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H15 H10.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H27 H26.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 top G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result to H28 H5.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 top G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
H31 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H31.
Subgoal 8.11.1.4:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (tensor A B) G2
H11 : adj G4 A G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK top G'
H16 : adj KK B U
H17 : adj U top G4
H18 : adj U A U1
H19 : adj U1 top G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A B) U2
H28 : adj U2 top G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A B) M
H31 : perm U2 G2'
H32 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H32, apply H21), unfold(prove, 4, exists[A = A, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H30, apply H23), apply H25), apply H22))).
Subgoal 8.11.1.5:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_3 to H12 H5.
Subgoal 8.11.1.5:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : (exists JJ, adj JJ top G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK top G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < case H17.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H18.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H13.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
H26 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H27 H28 H19.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H29 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply change_merge_order to H33 H34 H11.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H35 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D'1 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H36.
Subgoal 8.11.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ top G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D'1 D1' L1
H37 : merge D2 D1' M
H38 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H37), unfold(prove, 5, exists[A = A, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H27), apply H23), apply H14), apply H22), apply H16))).
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H18.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H14.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
H26 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
H29 : merge KK G3 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply change_merge_order to H27 *H28 *H29.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H30 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to *H30.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
H33 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H11 : merge D1'1 D2' D'1
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to *H11.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
H36 : merge D2' D1'1 D'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply change_merge_order to H34 *H35 *H36.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H37 : merge D1' D'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to *H37.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H38.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < exists L, M.
Subgoal 8.11.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

20 other subgoals.

cut_admissibility < split.
Subgoal 8.11.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L

22 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 8.11.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 8.11.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 prove L M

20 other subgoals.

cut_admissibility < unfold 5.
Subgoal 8.11.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

20 other subgoals.

cut_admissibility < exists A, B, L1.
Subgoal 8.11.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

20 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 8.11.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G1 G2, adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

20 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 8.11.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (tensor A B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D'1 D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 adj L1 (tensor A B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

20 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H40, apply H42), apply H41), apply H13), apply H23), apply H15), apply H22).
Subgoal 8.11.1.6:

Variables: G1 D1 D1' G2 G2' D'
C <-- top
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H10.
Subgoal 8.11.1.6:

Variables: G1 D1 D1' G2' D'
C <-- top
G2 <-- bot :: nil
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' top D1
H5 : adj G2' top (bot :: nil)
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H11 : formula bot
H12 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H5.
Subgoal 8.11.1.6:

Variables: G1 D1 D1' D' K
C <-- top
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' top D1
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H11 : formula bot
H12 : is_list nil
H13 : formula bot
H14 : adj K top nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < case H14.
Subgoal 8.11.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H5.
Subgoal 8.11.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 G3 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
H12 : merge G2' G1 G3
H13 : merge D'1 D1' D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H13.
Subgoal 8.11.1.7:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 G3 D3 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 bot D2
H11 : prove G2 D'1 ***
H12 : merge G2' G1 G3
H13 : merge D'1 D1' D3
H14 : prove G3 D3
H15 : merge D2 D1' M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H15), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H14))).
Subgoal 8.11.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H5.
Subgoal 8.11.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H15 H11.
Subgoal 8.11.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H12.
Subgoal 8.11.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H20.
Subgoal 8.11.1.8:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 D4 G3 D5 LL LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (par A B) D2
H11 : adj D4 A D3
H12 : adj D'1 B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D'1 D1' LL1
H21 : merge D2 D1' M
H22 : adj LL1 (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H14, apply H21), unfold(prove, 8, exists[A = A, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H22, apply H17), apply H19), apply H16))).
Subgoal 8.11.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : top = par A B /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H17.
Subgoal 8.11.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_3 to H11 H18.
Subgoal 8.11.1.9:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H19 : (exists JJ, adj JJ top G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 top G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H19.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H20 H13.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H23.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H29 : is_list LL
H30 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H28 : merge JJ G1 LL
H31 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H21.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H33 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to *H33.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H35 H34.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H36 H5.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H39.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H41.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply change_merge_order to H43 H44 H12.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H45 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_sym to *H45.
Subgoal 8.11.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj JJ top G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A U
H23 : adj U top G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A B) U1
H36 : adj U1 top G2
H37 : merge U1 G1 M
H38 : adj L (par A B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H46 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H40, apply H46), unfold(prove, 9, exists[A = A, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H38, apply H31), apply H43), apply H27), apply H14), apply H26), apply H16))).
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H20 H14.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H23.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
H30 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H31 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H21.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H33.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H34 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H34.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply add_to_merge_left to H36 H35.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result to H37 H5.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply perm_merge_1 to H38 H40.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
H43 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H43.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H12.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply change_merge_order to H44 H45 H46.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H47 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H47.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply merge_sym to *H31.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 8.11.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

16 other subgoals.

cut_admissibility < split.
Subgoal 8.11.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M

18 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 8.11.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge D2 D1' L1

17 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 8.11.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 prove M L1

16 other subgoals.

cut_admissibility < unfold 9.
Subgoal 8.11.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

16 other subgoals.

cut_admissibility < exists A, B, L.
Subgoal 8.11.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

16 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 8.11.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists D1 D2, adj L (par A B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

16 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 8.11.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (par A B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK top G'
H20 : adj KK1 top G2'1
H22 : adj KK1 B U
H23 : adj U top G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A B) U1
H37 : adj U1 top G2
H38 : merge U1 G1 M
H39 : adj L (par A B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 adj L (par A B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

16 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H39, apply H50), apply H49), apply H13), apply H27), apply H15), apply H26).
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_same_result_diff to H10 H5.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G'
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H12 : zero = top /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H12.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H16 *H14.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H13.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H20 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_exists to *H11 *H20.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < apply merge_3_is_list to H21.
Subgoal 8.11.1.10:

Variables: G1 D1 D1' G2 G2' D2 D' G' KK L LL L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
H22 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H17, apply H21), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H22))).
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H12 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H12 : is_list G2'
H13 : is_list G1
H14 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply adj_3_is_list to H10.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
H17 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_exists to *H17 *H16.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H10.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply merge_3_is_list to H15.
Subgoal 8.11.1.11:

Variables: G1 D1 D1' G2 G2' D2 D' D'1 L L1 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D'1 D1' LL
H21 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H15, apply H18), unfold(prove, 11, exists[D' = LL] split(apply H19, apply H21))).
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H13 : top = with A B /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < case H13.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 8.11.1.12:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' A G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK A U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H13 : top = with A B /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H13.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 8.11.1.13:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G3 KK U G4 D3 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (with A B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK top G'
H15 : adj KK B U
H16 : adj U top G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A B) U1
H23 : adj U1 top G2
H24 : merge U1 G1 M
H25 : adj LL (with A B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D2' D3 D4 G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D2' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D2' D'1
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to H16.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_perm_result to H18 H5.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H11.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to H17.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply adj_perm_result to H26 H5.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H28 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H27.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_unadj_1 to H30 H12.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to *H20.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_1 to H21 H34.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_sym to *H28.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H36.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H39 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H15.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply merge_perm_det to H41 H25.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H25.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 8.11.1.14:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

11 other subgoals.

cut_admissibility < split.
Subgoal 8.11.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge G2' G1 G5

13 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 8.11.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 merge D2 D1' M

12 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 8.11.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 prove G5 M

11 other subgoals.

cut_admissibility < unfold 14.
Subgoal 8.11.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

11 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 8.11.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

11 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 8.11.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

11 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 8.11.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (with A B) D2
H11 : adj D'1 A D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'1
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK top G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A D5
H25 : merge D'1 D1' LL
H26 : perm G2 G4
H27 : adj KK1 top G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D'1 D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A B) M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

11 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H44, apply H24), apply H32), apply H23), apply H31), apply H42), apply H40), apply H38).
Subgoal 8.11.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 8.11.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 8.11.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 8.11.1.15:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 A D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D'1 D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 8.11.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 8.11.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 8.11.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 8.11.1.16:

Variables: G1 D1 D1' G2 G2' D2 D' A B D'1 D3 G3 D4 LL M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj D'1 (plus A B) D2
H11 : adj D'1 B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D'1 D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G2'1 G3 G4 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G2'1 B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G2'1 G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H18 : top = plus A B /\ perm G2' G' \/ (exists KK, adj KK top G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H18.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H19 H11.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H21.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H20.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_perm_result to H27 H19.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H28 H12.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H31.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H30.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H29.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H37.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_swap to H19 H10.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_left to H39 H26.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply adj_same_result to H40 H5.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H43.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H16.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H17.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_perm_det to H46 H45.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_2_is_list to H47.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H48 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply perm_refl to *H48.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 8.11.1.17:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

8 other subgoals.

cut_admissibility < split.
Subgoal 8.11.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M

10 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 8.11.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge D2 D1' D5

9 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 8.11.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 prove M D5

8 other subgoals.

cut_admissibility < unfold 17.
Subgoal 8.11.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

8 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 8.11.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

8 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 8.11.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

8 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 8.11.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 D' A B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : perm D' D1'
H10 : adj G' (plus A B) G2
H11 : adj G' A G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK top G'
H20 : adj KK A U
H21 : adj U top G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 top G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 top G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A B) U2
H40 : adj U2 top G2
H41 : merge U2 G1 M
H42 : adj LL (plus A B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

8 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H42, apply H25), apply H35), apply H24), apply H34), apply H38), apply H49), apply H47).
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H7 : is_list G1
H9 : adj KK top D1'
H10 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_exists to *H10 *H7.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
H12 : is_list G2
H13 : is_list D2
H14 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_exists to *H13 *H14.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H15 H9.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H16 : adj LL top L1
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_3_is_list to H11.
Subgoal 8.11.2:

Variables: G1 D1 D1' G2 G2' D2 D' KK L L1 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' top D1
H9 : adj KK top D1'
H11 : merge G2' G1 L
H12 : is_list G2
H15 : merge D2 D1' L1
H16 : adj LL top L1
H17 : merge D2 KK LL
H18 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H11, apply H15), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 8.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 8.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 8.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 8.12:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' A G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 12, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 8.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 8.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 8.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 8.13:

Variables: G1 D1 D1' G2 G2' D2 A B G' G3 G4 D3 LL M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (with A B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 13, exists[A = A, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H14 : top = with A B /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < case H14.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H15 H7.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H17 H5.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_sym to H11.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_perm_result to H23 H15.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H24 H8.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H27 H5.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H29 H26.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H12.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H13.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H33.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_2_is_list to H35.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_refl to *H36.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H25.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H38.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_swap to H15 H6.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply add_to_merge_right to H40 H22.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply adj_same_result to H41 H4.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply perm_merge_2 to H42 H44.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 8.14:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

4 other subgoals.

cut_admissibility < split.
Subgoal 8.14.1:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5

6 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 8.14.2:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge D2 D1' M

5 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 8.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 prove G5 M

4 other subgoals.

cut_admissibility < unfold 14.
Subgoal 8.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

4 other subgoals.

cut_admissibility < exists A, B, LL.
Subgoal 8.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A B) M /\ adj LL A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

4 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 8.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

4 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 8.14.3:

Variables: G1 D1 D1' G2 G2' D2 A B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1 G6
           D6 LL1 U2 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (with A B) D1
H7 : adj D' A D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK top D'
H16 : adj KK A U
H17 : adj U top D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 top D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 top D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A B) U2
H41 : adj U2 top D1
H42 : merge D2 U2 M
H43 : adj LL (with A B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 adj LL (with A B) M /\ adj LL A D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

4 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H21), apply H31), apply H20), apply H30), apply H39), apply H37), apply H35).
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H9 : top = plus A B /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < case H9.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 8.15:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' A D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK A U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 15, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H9 : top = plus A B /\ perm D1' D' \/ (exists KK, adj KK top D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < case H9.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 8.16:

Variables: G1 D1 D1' G2 G2' D2 A B D' D3 KK U G3 D4 LL U1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj D' (plus A B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK top D'
H11 : adj KK B U
H12 : adj U top D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A B) U1
H19 : adj U1 top D1
H20 : merge D2 U1 M
H21 : adj LL (plus A B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 16, exists[A = A, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_sym to H12.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_perm_result to H14 H4.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply merge_unadj_2 to H17 H7.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_sym to H13.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_perm_result to H22 H4.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply IH1 to H1 H10 H3 H23 H5.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply merge_unadj_2 to H25 H8.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_merge_2 to H29 H11.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply merge_perm_det to H30 H21.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply add_to_merge_right to H6 H21.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_sym to *H16.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_merge_2 to H18 H34.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_sym to *H24.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_merge_2 to H26 H36.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H39 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_refl to *H39.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < exists M, D5.
Subgoal 8.17:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

1 other subgoal.

cut_admissibility < split.
Subgoal 8.17.1:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M

3 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 8.17.2:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge D2 D1' D5

2 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 8.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 prove M D5

1 other subgoal.

cut_admissibility < unfold 17.
Subgoal 8.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

1 other subgoal.

cut_admissibility < exists A, B, LL.
Subgoal 8.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A B) M /\ adj LL A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

1 other subgoal.

cut_admissibility < exists LL1, G5, G6.
Subgoal 8.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

1 other subgoal.

cut_admissibility < exists D5, D6.
Subgoal 8.17.3:

Variables: G1 D1 D1' G2 G2' D2 A B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6 D6
           LL1 M
C <-- top
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula top @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' top D1
H5 : adj G2' top G2
H6 : adj G' (plus A B) G1
H7 : adj G' A G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK top D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 top D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 adj LL (plus A B) M /\ adj LL A G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

1 other subgoal.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H33, apply H20), apply H28), apply H19), apply H27), apply H31), apply H40), apply H38).
Subgoal 9:

Variables: G1 D1 D1' G2 G2' D2 A
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < case H2 (keep).
Subgoal 9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H7.
Subgoal 9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H8 : atom A = atom A1 /\ perm D1' nil \/ (exists KK, adj KK (atom A) nil)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H8.
Subgoal 9.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H3 (keep).
Subgoal 9.1.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H12 : atom A1 = atom A2 /\ perm G2' nil \/ (exists KK, adj KK (atom A1) nil)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < case H12.
Subgoal 9.1.1.1.1:

Variables: G1 D1 D1' G2 G2' D2 A2
C <-- atom A2
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A2) D1
H5 : adj G2' (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H9 : perm D1' nil
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H13 : perm G2' nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H9.
Subgoal 9.1.1.1.1.1:

Variables: G1 D1 G2 G2' D2 A2
C <-- atom A2
D1' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj G2' (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H13 : perm G2' nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H13.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H14 : is_list G1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply adj_3_is_list to H4.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H14 : is_list G1
H15 : is_list D1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply perm_refl to *H14.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H15 : is_list D1
H16 : perm G1 G1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply perm_refl to *H15.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H16 : perm G1 G1
H17 : perm D1 D1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply perm_merge_1_nil to H16.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H16 : perm G1 G1
H17 : perm D1 D1
H18 : merge nil G1 G1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < apply perm_merge_1_nil to H17.
Subgoal 9.1.1.1.1.1.1:

Variables: G1 D1 G2 D2 A2
C <-- atom A2
D1' <-- nil
G2' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj nil (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H16 : perm G1 G1
H17 : perm D1 D1
H18 : merge nil G1 G1
H19 : merge nil D1 D1
============================
 exists G3 D3, merge nil G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

36 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G1, D3 = D1] split(split(apply H18, unfold(merge, 2, exists[A = atom A2, JJ = nil, LL = nil] split(split(apply H11, apply H4), unfold(merge, 1, true)))), apply H2).
Subgoal 9.1.1.1.1.1.2:

Variables: G1 D1 G2 G2' D2 A2 A3 KK LL
C <-- atom A2
D1' <-- nil
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj nil (atom A2) D1
H5 : adj G2' (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H14 : adj KK A3 G2'
H15 : adj LL A3 nil
H16 : perm KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 nil D3 /\ prove G3 D3

35 other subgoals.

cut_admissibility < case H15.
Subgoal 9.1.1.1.1.2:

Variables: G1 D1 D1' G2 G2' D2 A2 A3 KK LL
C <-- atom A2
A <-- A2
A1 <-- A2
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A2) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A2) D1
H5 : adj G2' (atom A2) G2
H6 : adj nil (atom A2) G1
H7 : adj nil (atom A2) D1
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H13 : perm G2' nil
H14 : adj KK A3 D1'
H15 : adj LL A3 nil
H16 : perm KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

34 other subgoals.

cut_admissibility < case H15.
Subgoal 9.1.1.1.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj nil (atom A2) G2
H11 : adj nil (atom A2) D2
H13 : adj KK (atom A1) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

33 other subgoals.

cut_admissibility < case H13.
Subgoal 9.1.1.2:

Variables: G1 D1 D1' G2' D2 A1
C <-- atom A1
G2 <-- nil
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove nil D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) nil
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj nil one D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H10.
Subgoal 9.1.1.2:

Variables: G1 D1 D1' G2' A1
C <-- atom A1
G2 <-- nil
D2 <-- one :: nil
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove nil (one :: nil) @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) nil
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H11 : formula one
H12 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge (one :: nil) D1' D3 /\ prove G3 D3

32 other subgoals.

cut_admissibility < case H5.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H12 : atom A1 = one /\ perm G2' G' \/ (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < case H12.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H13.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK G3 D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply adj_swap to H13 H10.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK G3 D3 U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply add_to_merge_left to H17 H14.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK G3 D3 U M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U (atom A1) G2
H19 : merge U G1 M
H20 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply adj_same_result to H18 H5.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK G3 D3 U M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U (atom A1) G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < apply perm_merge_1 to H19 H21.
Subgoal 9.1.1.3:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK G3 D3 U M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' one G2
H11 : prove G' D2 ***
H13 : adj KK (atom A1) G'
H14 : merge KK G1 G3
H15 : merge D2 D1' D3
H16 : prove G3 D3
H17 : adj KK one U
H18 : adj U (atom A1) G2
H19 : merge U G1 M
H20 : adj G3 one M
H21 : perm U G2'
H22 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

31 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H22, apply H15), unfold(prove, 3, exists[G' = G3] split(apply H20, apply H16))).
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H14 : atom A1 = tensor A2 B /\ perm G2' G' \/
        (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < case H14.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_swap to H15 H12.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_swap to H17 H11.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H20 H18.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H16.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_swap to H15 H10.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL LL1 U2
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A2 B) U2
H28 : adj U2 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply add_to_merge_left to H27 H26.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A2 B) U2
H28 : adj U2 (atom A1) G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply adj_same_result to H28 H5.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A2 B) U2
H28 : adj U2 (atom A1) G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A2 B) M
H31 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H31.
Subgoal 9.1.1.4:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 KK U U1 G5 D3 LL LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (tensor A2 B) G2
H11 : adj G4 A2 G3
H12 : adj G' B G4
H13 : prove G3 D2 ***
H15 : adj KK (atom A1) G'
H16 : adj KK B U
H17 : adj U (atom A1) G4
H18 : adj U A2 U1
H19 : adj U1 (atom A1) G3
H20 : merge U1 G1 G5
H21 : merge D2 D1' D3
H22 : prove G5 D3
H23 : adj LL A2 G5
H24 : merge U G1 LL
H25 : adj LL1 B LL
H26 : merge KK G1 LL1
H27 : adj KK (tensor A2 B) U2
H28 : adj U2 (atom A1) G2
H29 : merge U2 G1 M
H30 : adj LL1 (tensor A2 B) M
H31 : perm U2 G2'
H32 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H32, apply H21), unfold(prove, 4, exists[A = A2, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H30, apply H23), apply H25), apply H22))).
Subgoal 9.1.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_unadj_3 to H12 H5.
Subgoal 9.1.1.5:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : (exists JJ, adj JJ (atom A1) G3 /\ merge JJ G4 G2') \/
        (exists KK, adj KK (atom A1) G4 /\ merge G3 KK G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < case H17.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H18.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H13.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H25 : is_list G5
H26 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply change_merge_order to H27 H28 H19.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H29 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_sym to *H29.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H31 : is_list LL
H32 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_exists to *H31 *H32.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_sym to H24.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply change_merge_order to H33 H34 H11.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H35 : merge D1' D' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply merge_sym to *H35.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D' D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H36.
Subgoal 9.1.1.5.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 JJ G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj JJ (atom A1) G3
H19 : merge JJ G4 G2'
H20 : merge JJ G1 G5
H21 : merge D3 D1' D5
H22 : prove G5 D5
H23 : adj LL A2 D5
H24 : merge D1'1 D1' LL
H27 : merge G5 G4 L
H28 : merge G1 JJ G5
H30 : merge G2' G1 L
H33 : merge LL D2' L1
H34 : merge D1' D1'1 LL
H36 : merge D' D1' L1
H37 : merge D2 D1' M
H38 : adj L1 (tensor A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

30 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H30, apply H37), unfold(prove, 5, exists[A = A2, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H38, apply H33), apply H27), apply H23), apply H14), apply H22), apply H16))).
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H18.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_unadj_1 to H21 H14.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H25 : is_list G5
H26 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_exists to *H25 *H26.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to H20.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to H19.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H28 : merge G1 KK G5
H29 : merge KK G3 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply change_merge_order to H27 *H28 *H29.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H30 : merge G1 G2' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to *H30.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H32 : is_list LL
H33 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_exists to *H32 *H33.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2' D1' LL
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to *H24.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H11 : merge D1'1 D2' D'
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to *H11.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H35 : merge D1' D2' LL
H36 : merge D2' D1'1 D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply change_merge_order to H34 *H35 *H36.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H37 : merge D1' D' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to *H37.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H38.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < apply merge_sym to H34.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

29 other subgoals.

cut_admissibility < exists L, M.
Subgoal 9.1.1.5.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

29 other subgoals.

cut_admissibility < split.
Subgoal 9.1.1.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge G2' G1 L

31 other subgoals.

cut_admissibility < search.
Witness: apply H31.
Subgoal 9.1.1.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 merge D2 D1' M

30 other subgoals.

cut_admissibility < search.
Witness: apply H39.
Subgoal 9.1.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 prove L M

29 other subgoals.

cut_admissibility < unfold 5.
Subgoal 9.1.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

29 other subgoals.

cut_admissibility < exists A2, B, L1.
Subgoal 9.1.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A2 B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A2 D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

29 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 9.1.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 exists G1 G2, adj L1 (tensor A2 B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A2 D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

29 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 9.1.1.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 D1'1 D2' G3 G4 KK G5 D5 LL L
           L1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (tensor A2 B) D2
H12 : merge G3 G4 G2
H13 : adj D1'1 A2 D3
H14 : adj D2' B D4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G4
H19 : merge G3 KK G2'
H20 : merge KK G1 G5
H21 : merge D4 D1' D5
H22 : prove G5 D5
H23 : adj LL B D5
H27 : merge G5 G3 L
H31 : merge G2' G1 L
H34 : merge LL D1'1 L1
H38 : merge D' D1' L1
H39 : merge D2 D1' M
H40 : adj L1 (tensor A2 B) M
H41 : merge G3 G5 L
H42 : merge D1'1 LL L1
============================
 adj L1 (tensor A2 B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A2 D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

29 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H40, apply H42), apply H41), apply H13), apply H23), apply H15), apply H22).
Subgoal 9.1.1.6:

Variables: G1 D1 D1' G2 G2' A1
C <-- atom A1
D2 <-- nil
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 nil @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj nil bot G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H10.
Subgoal 9.1.1.6:

Variables: G1 D1 D1' G2' A1
C <-- atom A1
G2 <-- bot :: nil
D2 <-- nil
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) (bot :: nil)
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H11 : formula bot
H12 : is_list nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H5.
Subgoal 9.1.1.6:

Variables: G1 D1 D1' A1 K
C <-- atom A1
G2 <-- bot :: nil
G2' <-- bot :: K
D2 <-- nil
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove (bot :: nil) nil @@@
H4 : adj D1' (atom A1) D1
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H11 : formula bot
H12 : is_list nil
H13 : formula bot
H14 : adj K (atom A1) nil
============================
 exists G3 D3, merge (bot :: K) G1 G3 /\ merge nil D1' D3 /\ prove G3 D3

28 other subgoals.

cut_admissibility < case H14.
Subgoal 9.1.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 D'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' bot D2
H11 : prove G2 D' ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H11 H4 H5.
Subgoal 9.1.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 D' G3 D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' bot D2
H11 : prove G2 D' ***
H12 : merge G2' G1 G3
H13 : merge D' D1' D3
H14 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H13.
Subgoal 9.1.1.7:

Variables: G1 D1 D1' G2 G2' D2 A1 D' G3 D3 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' bot D2
H11 : prove G2 D' ***
H12 : merge G2' G1 G3
H13 : merge D' D1' D3
H14 : prove G3 D3
H15 : merge D2 D1' M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

27 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H12, apply H15), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H14))).
Subgoal 9.1.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (par A2 B) D2
H11 : adj D4 A2 D3
H12 : adj D' B D4
H13 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H5.
Subgoal 9.1.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 G3 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (par A2 B) D2
H11 : adj D4 A2 D3
H12 : adj D' B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H15 H11.
Subgoal 9.1.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 G3 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (par A2 B) D2
H11 : adj D4 A2 D3
H12 : adj D' B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A2 D5
H18 : merge D4 D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H12.
Subgoal 9.1.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 G3 D5 LL LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (par A2 B) D2
H11 : adj D4 A2 D3
H12 : adj D' B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A2 D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H20.
Subgoal 9.1.1.8:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 D4 G3 D5 LL LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (par A2 B) D2
H11 : adj D4 A2 D3
H12 : adj D' B D4
H13 : prove G2 D3 ***
H14 : merge G2' G1 G3
H15 : merge D3 D1' D5
H16 : prove G3 D5
H17 : adj LL A2 D5
H18 : merge D4 D1' LL
H19 : adj LL1 B LL
H20 : merge D' D1' LL1
H21 : merge D2 D1' M
H22 : adj LL1 (par A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H14, apply H21), unfold(prove, 8, exists[A = A2, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H22, apply H17), apply H19), apply H16))).
Subgoal 9.1.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H17 : atom A1 = par A2 B /\ perm G2' G' \/ (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H17.
Subgoal 9.1.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_3 to H11 H18.
Subgoal 9.1.1.9:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H19 : (exists JJ, adj JJ (atom A1) G1' /\ merge JJ G2'1 KK) \/
        (exists KK1, adj KK1 (atom A1) G2'1 /\ merge G1' KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < case H19.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H20 H13.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H15 H4 H23.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge JJ G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge JJ G1 LL
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_2_is_list to H11.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge JJ G1 LL
H29 : is_list LL
H30 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H28 : merge JJ G1 LL
H31 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H21.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H33 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H33.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply add_to_merge_left to H35 H34.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply adj_same_result to H36 H5.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply perm_merge_1 to H37 H39.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_2_is_list to H12.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H41 : is_list D4
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H41.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H25 : merge D3 D1' D5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply change_merge_order to H43 H44 H12.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H45 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < apply merge_sym to *H45.
Subgoal 9.1.1.9.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK JJ U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj JJ (atom A1) G1'
H21 : merge JJ G2'1 KK
H22 : adj JJ A2 U
H23 : adj U (atom A1) G3
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL A2 G5
H31 : merge LL G2'1 L
H32 : merge G1 JJ LL
H34 : merge KK G1 L
H35 : adj KK (par A2 B) U1
H36 : adj U1 (atom A1) G2
H37 : merge U1 G1 M
H38 : adj L (par A2 B) M
H39 : perm U1 G2'
H40 : merge G2' G1 M
H43 : merge D5 D4 L1
H44 : merge D1' D3 D5
H46 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

26 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H40, apply H46), unfold(prove, 9, exists[A = A2, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H38, apply H31), apply H43), apply H27), apply H14), apply H26), apply H16))).
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_swap to H20 H14.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H16 H4 H23.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_unadj_1 to H24 H22.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_1_is_list to H11.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_3_is_list to H28.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H29 : is_list G1'
H30 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H30 *H29.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H28 : merge KK1 G1 LL
H31 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H28.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H21 : merge G1' KK1 KK
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H21.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply change_merge_order to H31 H32 H33.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H34 : merge G1 KK L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H34.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_swap to H18 H10.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply add_to_merge_left to H36 H35.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply adj_same_result to H37 H5.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply perm_merge_1 to H38 H40.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_3_is_list to H25.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_1_is_list to H12.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H42 : is_list D5
H43 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_exists to *H42 *H43.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H25 : merge D4 D1' D5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H25.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H12 : merge D3 D4 D2
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H12.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply change_merge_order to H44 H45 H46.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H47 : merge D1' D2 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H47.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H44 : merge D5 D3 L1
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H44.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H31 : merge LL G1' L
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < apply merge_sym to *H31.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

25 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 9.1.1.9.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

25 other subgoals.

cut_admissibility < split.
Subgoal 9.1.1.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge G2' G1 M

27 other subgoals.

cut_admissibility < search.
Witness: apply H41.
Subgoal 9.1.1.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 merge D2 D1' L1

26 other subgoals.

cut_admissibility < search.
Witness: apply H48.
Subgoal 9.1.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 prove M L1

25 other subgoals.

cut_admissibility < unfold 9.
Subgoal 9.1.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

25 other subgoals.

cut_admissibility < exists A2, B, L.
Subgoal 9.1.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A2 B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A2 G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

25 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 9.1.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 exists D1 D2, adj L (par A2 B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A2 G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

25 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 9.1.1.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 G4 G1' G2'1 D3 D4 KK KK1 U G5 D5
           LL L U1 M L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (par A2 B) G2
H11 : merge G1' G2'1 G'
H13 : adj G1' A2 G3
H14 : adj G2'1 B G4
H15 : prove G3 D3 ***
H16 : prove G4 D4 ***
H18 : adj KK (atom A1) G'
H20 : adj KK1 (atom A1) G2'1
H22 : adj KK1 B U
H23 : adj U (atom A1) G4
H24 : merge U G1 G5
H26 : prove G5 D5
H27 : adj LL B G5
H32 : merge G1 KK1 LL
H33 : merge KK1 G1' KK
H35 : merge KK G1 L
H36 : adj KK (par A2 B) U1
H37 : adj U1 (atom A1) G2
H38 : merge U1 G1 M
H39 : adj L (par A2 B) M
H40 : perm U1 G2'
H41 : merge G2' G1 M
H45 : merge D1' D4 D5
H46 : merge D4 D3 D2
H48 : merge D2 D1' L1
H49 : merge D3 D5 L1
H50 : merge G1' LL L
============================
 adj L (par A2 B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A2 G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

25 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H39, apply H50), apply H49), apply H13), apply H27), apply H15), apply H26).
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_same_result_diff to H10 H5.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H12 : zero = atom A1 /\ perm G' G2' \/ (exists KK, adj KK zero G2')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < case H12.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H14 : is_list G1
H15 : is_list D1
H16 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_exists to *H16 *H14.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H13.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK L LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK L LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H11 : is_list D2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H20 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_exists to *H11 *H20.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK L LL L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < apply merge_3_is_list to H21.
Subgoal 9.1.1.10:

Variables: G1 D1 D1' G2 G2' D2 A1 G' KK L LL L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' zero G2
H13 : adj KK zero G2'
H15 : is_list D1
H17 : merge G2' G1 L
H18 : adj LL zero L
H19 : merge KK G1 LL
H21 : merge D2 D1' L1
H22 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

24 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H17, apply H21), unfold(prove, 10, exists[G' = LL] split(apply H18, apply H22))).
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H12 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply prove_is_list to H2.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D'
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H12 : is_list G2'
H13 : is_list G1
H14 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply adj_3_is_list to H10.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H16 : is_list D1'
H17 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_exists to *H17 *H16.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L L1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_unadj_1 to H18 H10.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L L1 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < apply merge_3_is_list to H15.
Subgoal 9.1.1.11:

Variables: G1 D1 D1' G2 G2' D2 A1 D' L L1 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' top D2
H11 : is_list G2
H14 : is_list D1
H15 : merge G2' G1 L
H18 : merge D2 D1' L1
H19 : adj LL top L1
H20 : merge D' D1' LL
H21 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

23 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H15, apply H18), unfold(prove, 11, exists[D' = LL] split(apply H19, apply H21))).
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H13 : atom A1 = with A2 B /\ perm G2' G' \/ (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < case H13.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A2 G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A2 G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A2 G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A2 G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 9.1.1.12:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' A2 G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK A2 U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL A2 G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

22 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 12, exists[A = A2, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H13 : atom A1 = with A2 B /\ perm G2' G' \/ (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < case H13.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H14 H11.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H16.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply merge_unadj_1 to H17 H15.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_swap to H14 H10.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply add_to_merge_left to H22 H21.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply adj_same_result to H23 H5.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
H26 : perm U1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < apply perm_merge_1 to H24 H26.
Subgoal 9.1.1.13:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G3 KK U G4 D3 LL U1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (with A2 B) G2
H11 : adj G' B G3
H12 : prove G3 D2 ***
H14 : adj KK (atom A1) G'
H15 : adj KK B U
H16 : adj U (atom A1) G3
H17 : merge U G1 G4
H18 : merge D2 D1' D3
H19 : prove G4 D3
H20 : adj LL B G4
H21 : merge KK G1 LL
H22 : adj KK (with A2 B) U1
H23 : adj U1 (atom A1) G2
H24 : merge U1 G1 M
H25 : adj LL (with A2 B) M
H26 : perm U1 G2'
H27 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

21 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H27, apply H18), unfold(prove, 13, exists[A = A2, B = B, G' = LL, G1 = G4] split(split(apply H25, apply H20), apply H19))).
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D2' D3 D4 G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D2' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D2' D'
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < rename D2' to D4'.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_sym to H16.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_perm_result to H18 H5.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H19.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H11.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_sym to H17.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply adj_perm_result to H26 H5.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H28 : perm G2' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H27.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_unadj_1 to H30 H12.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H20 : perm G2' KK
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_sym to *H20.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_merge_1 to H21 H34.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H28 : perm G2' KK1
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_sym to *H28.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_merge_1 to H29 H36.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H39 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_refl to *H39.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H15.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply merge_perm_det to H41 H25.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H25.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

20 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 9.1.1.14:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

20 other subgoals.

cut_admissibility < split.
Subgoal 9.1.1.14.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 merge G2' G1 G5

22 other subgoals.

cut_admissibility < search.
Witness: apply H35.
Subgoal 9.1.1.14.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 merge D2 D1' M

21 other subgoals.

cut_admissibility < search.
Witness: apply H43.
Subgoal 9.1.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 prove G5 M

20 other subgoals.

cut_admissibility < unfold 14.
Subgoal 9.1.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

20 other subgoals.

cut_admissibility < exists A2, B, LL.
Subgoal 9.1.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A2 B) M /\ adj LL A2 D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

20 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 9.1.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 exists G1 G2, adj LL (with A2 B) M /\ adj LL A2 D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

20 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 9.1.1.14.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D4' D3 D4 G3 G4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (with A2 B) D2
H11 : adj D' A2 D3
H12 : adj D4' B D4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm D4' D'
H16 : perm G3 G2
H17 : perm G4 G2
H18 : perm G2 G3
H19 : adj KK (atom A1) G3
H21 : merge KK G1 G5
H22 : merge D3 D1' D5
H23 : prove G5 D5
H24 : adj LL A2 D5
H25 : merge D' D1' LL
H26 : perm G2 G4
H27 : adj KK1 (atom A1) G4
H29 : merge KK1 G1 G6
H30 : merge D4 D1' D6
H31 : prove G6 D6
H32 : adj LL1 B D6
H33 : merge D4' D1' LL1
H34 : perm KK G2'
H35 : merge G2' G1 G5
H36 : perm KK1 G2'
H37 : merge G2' G1 G6
H38 : perm G6 G5
H40 : perm G5 G5
H41 : merge D' D1' LL1
H42 : perm LL1 LL
H43 : merge D2 D1' M
H44 : adj LL (with A2 B) M
============================
 adj LL (with A2 B) M /\ adj LL A2 D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

20 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H44, apply H24), apply H32), apply H23), apply H31), apply H42), apply H40), apply H38).
Subgoal 9.1.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' A2 D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 9.1.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' A2 D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 9.1.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' A2 D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A2 D4
H17 : merge D' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 9.1.1.15:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4 LL M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' A2 D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL A2 D4
H17 : merge D' D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

19 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 15, exists[A = A2, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 9.1.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' B D3
H12 : prove G2 D3 ***
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H12 H4 H5.
Subgoal 9.1.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply merge_unadj_1 to H14 H11.
Subgoal 9.1.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D' D1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < apply add_to_merge_left to H10 H17.
Subgoal 9.1.1.16:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B D' D3 G3 D4 LL M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj D' (plus A2 B) D2
H11 : adj D' B D3
H12 : prove G2 D3 ***
H13 : merge G2' G1 G3
H14 : merge D3 D1' D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D' D1' LL
H18 : merge D2 D1' M
H19 : adj LL (plus A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

18 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H18), unfold(prove, 16, exists[A = A2, B = B, D' = LL, D1 = D4] split(split(apply H19, apply H16), apply H15))).
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G2'1 G3 G4 D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G2'1 B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G2'1 G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < rename G2'1 to G4'.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result_diff to H5 H10.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H18 : atom A1 = plus A2 B /\ perm G2' G' \/ (exists KK, adj KK (atom A1) G')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < case H18.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H19 H11.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H13 H4 H21.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H22 H20.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_sym to H15.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_perm_result to H27 H19.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H28 H12.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply IH2 to H1 H2 H14 H4 H31.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_unadj_1 to H32 H30.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H26 H29.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_perm_det to H36 H37.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_swap to H19 H10.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply add_to_merge_left to H39 H26.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply adj_same_result to H40 H5.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H41 H43.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H23 H16.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_merge_1 to H33 H17.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply merge_perm_det to H46 H45.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_2_is_list to H47.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H48 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < apply perm_refl to *H48.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

17 other subgoals.

cut_admissibility < exists M, D5.
Subgoal 9.1.1.17:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

17 other subgoals.

cut_admissibility < split.
Subgoal 9.1.1.17.1:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge G2' G1 M

19 other subgoals.

cut_admissibility < search.
Witness: apply H44.
Subgoal 9.1.1.17.2:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 merge D2 D1' D5

18 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 9.1.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 prove M D5

17 other subgoals.

cut_admissibility < unfold 17.
Subgoal 9.1.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

17 other subgoals.

cut_admissibility < exists A2, B, LL.
Subgoal 9.1.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A2 B) M /\ adj LL A2 G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

17 other subgoals.

cut_admissibility < exists LL1, G5, G6.
Subgoal 9.1.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A2 B) M /\ adj LL A2 G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

17 other subgoals.

cut_admissibility < exists D5, D6.
Subgoal 9.1.1.17.3:

Variables: G1 D1 D1' G2 G2' D2 A1 A2 B G' G4' G3 G4 D3 D4 KK U G5 D5 LL KK1
           U1 G6 D6 LL1 U2 M
C <-- atom A1
A <-- A1
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A1) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A1) D1
H5 : adj G2' (atom A1) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : perm D1' nil
H10 : adj G' (plus A2 B) G2
H11 : adj G' A2 G3
H12 : adj G4' B G4
H13 : prove G3 D3 ***
H14 : prove G4 D4 ***
H15 : perm G4' G'
H16 : perm D3 D2
H17 : perm D4 D2
H19 : adj KK (atom A1) G'
H20 : adj KK A2 U
H21 : adj U (atom A1) G3
H22 : merge U G1 G5
H23 : merge D3 D1' D5
H24 : prove G5 D5
H25 : adj LL A2 G5
H26 : merge KK G1 LL
H27 : perm G' G4'
H28 : adj KK1 (atom A1) G4'
H29 : perm KK KK1
H30 : adj KK1 B U1
H31 : adj U1 (atom A1) G4
H32 : merge U1 G1 G6
H33 : merge D4 D1' D6
H34 : prove G6 D6
H35 : adj LL1 B G6
H36 : merge KK1 G1 LL1
H37 : merge KK1 G1 LL
H38 : perm LL1 LL
H39 : adj KK (plus A2 B) U2
H40 : adj U2 (atom A1) G2
H41 : merge U2 G1 M
H42 : adj LL (plus A2 B) M
H43 : perm U2 G2'
H44 : merge G2' G1 M
H45 : merge D2 D1' D5
H46 : merge D2 D1' D6
H47 : perm D6 D5
H49 : perm D5 D5
============================
 adj LL (plus A2 B) M /\ adj LL A2 G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

17 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H42, apply H25), apply H35), apply H24), apply H34), apply H38), apply H49), apply H47).
Subgoal 9.1.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj nil (atom A1) G1
H7 : adj nil (atom A1) D1
H9 : adj KK (atom A) nil
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

16 other subgoals.

cut_admissibility < case H9.
Subgoal 9.2:

Variables: D1 D1' G2 G2' D2 A
C <-- atom A
G1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove nil D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj nil one D1
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H6.
Subgoal 9.2:

Variables: D1' G2 G2' D2 A
C <-- atom A
G1 <-- nil
D1 <-- one :: nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) (one :: nil)
H5 : adj G2' (atom A) G2
H7 : formula one
H8 : is_list nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 D1' D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H4.
Subgoal 9.2:

Variables: G2 G2' D2 A K
C <-- atom A
G1 <-- nil
D1 <-- one :: nil
D1' <-- one :: K
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove nil (one :: nil) @@
H3 : prove G2 D2 @@@
H5 : adj G2' (atom A) G2
H7 : formula one
H8 : is_list nil
H9 : formula one
H10 : adj K (atom A) nil
============================
 exists G3 D3, merge G2' nil G3 /\ merge D2 (one :: K) D3 /\ prove G3 D3

15 other subgoals.

cut_admissibility < case H10.
Subgoal 9.3:

Variables: G1 D1 D1' G2 G2' D2 A G'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' one G1
H7 : prove G' D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H4 H5.
Subgoal 9.3:

Variables: G1 D1 D1' G2 G2' D2 A G' G3 D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H8.
Subgoal 9.3:

Variables: G1 D1 D1' G2 G2' D2 A G' G3 D3 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' one G1
H7 : prove G' D1 **
H8 : merge G2' G' G3
H9 : merge D2 D1' D3
H10 : prove G3 D3
H11 : merge G2' G1 M
H12 : adj G3 one M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

14 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H11, apply H9), unfold(prove, 3, exists[G' = G3] split(apply H12, apply H10))).
Subgoal 9.4:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (tensor A1 B) G1
H7 : adj G4 A1 G3
H8 : adj G' B G4
H9 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H4 H5.
Subgoal 9.4:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G5 D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (tensor A1 B) G1
H7 : adj G4 A1 G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H7.
Subgoal 9.4:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G5 D3 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (tensor A1 B) G1
H7 : adj G4 A1 G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A1 G5
H14 : merge G2' G4 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H8.
Subgoal 9.4:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G5 D3 LL LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (tensor A1 B) G1
H7 : adj G4 A1 G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A1 G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H16.
Subgoal 9.4:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G5 D3 LL LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (tensor A1 B) G1
H7 : adj G4 A1 G3
H8 : adj G' B G4
H9 : prove G3 D1 **
H10 : merge G2' G3 G5
H11 : merge D2 D1' D3
H12 : prove G5 D3
H13 : adj LL A1 G5
H14 : merge G2' G4 LL
H15 : adj LL1 B LL
H16 : merge G2' G' LL1
H17 : merge G2' G1 M
H18 : adj LL1 (tensor A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H17, apply H11), unfold(prove, 4, exists[A = A1, B = B, G' = LL1, G1 = G5, G2 = LL] split(split(split(apply H18, apply H13), apply H15), apply H12))).
Subgoal 9.5:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.5:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : atom A = tensor A1 B /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H13.
Subgoal 9.5:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_3 to H7 H14.
Subgoal 9.5:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H15 : (exists JJ, adj JJ (atom A) D1'1 /\ merge JJ D2' KK) \/
        (exists KK1, adj KK1 (atom A) D2' /\ merge D1'1 KK1 KK)
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < case H15.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H16 H9.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H19 H5.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H25 : is_list G4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H25 : is_list G4
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H26 *H25.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H28 : is_list D2'
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H28.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H30 H24 H17.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1 U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A1 B) U1
H33 : adj U1 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply add_to_merge_right to H32 H31.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A1 B) U1
H33 : adj U1 (atom A) D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply change_merge_order to H27 H20 H8.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A1 B) U1
H33 : adj U1 (atom A) D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A1 B) M
H36 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply adj_same_result to H33 H4.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A1 B) U1
H33 : adj U1 (atom A) D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A1 B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < apply perm_merge_2 to H34 H37.
Subgoal 9.5.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK JJ U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj JJ (atom A) D1'1
H17 : merge JJ D2' KK
H18 : adj JJ A1 U
H19 : adj U (atom A) D3
H20 : merge G2' G3 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL A1 D5
H24 : merge D2 JJ LL
H27 : merge G5 G4 L
H30 : merge LL D2' L1
H31 : merge D2 KK L1
H32 : adj KK (tensor A1 B) U1
H33 : adj U1 (atom A) D1
H34 : merge D2 U1 M
H35 : adj L1 (tensor A1 B) M
H36 : merge G2' G1 L
H37 : perm U1 D1'
H38 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

13 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = M] split(split(apply H36, apply H38), unfold(prove, 5, exists[A = A1, B = B, D' = L1, D1 = D5, D2 = D4, D1' = LL, D2' = D2', G1 = G5, G2 = G4] split(split(split(split(split(split(apply H35, apply H30), apply H27), apply H23), apply H10), apply H22), apply H12))).
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H16 H10.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H19 H5.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_unadj_2 to H21 H18.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to H25 H26.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H27.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_3_is_list to H24.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_exists to H29 H30.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H17.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H31 H24 H33.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_swap to H14 H6.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply add_to_merge_right to H35 H34.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply adj_same_result to H36 H4.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply perm_merge_2 to H37 H39.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply merge_sym to H8.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < apply change_merge_order to H28 H20 H41.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

12 other subgoals.

cut_admissibility < exists L, M.
Subgoal 9.5.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L /\ merge D2 D1' M /\ prove L M

12 other subgoals.

cut_admissibility < split.
Subgoal 9.5.2.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge G2' G1 L

14 other subgoals.

cut_admissibility < search.
Witness: apply H42.
Subgoal 9.5.2.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 merge D2 D1' M

13 other subgoals.

cut_admissibility < search.
Witness: apply H40.
Subgoal 9.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 prove L M

12 other subgoals.

cut_admissibility < unfold 5.
Subgoal 9.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists A B D' D1 D2 D1' D2' G1 G2, adj D' (tensor A B) M /\
   merge D1' D2' D' /\ merge G1 G2 L /\ adj D1' A D1 /\ adj D2' B D2 /\
   prove G1 D1 /\ prove G2 D2

12 other subgoals.

cut_admissibility < exists A1, B, L1.
Subgoal 9.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists D1 D2 D1' D2' G1 G2, adj L1 (tensor A1 B) M /\ merge D1' D2' L1 /\
   merge G1 G2 L /\ adj D1' A1 D1 /\ adj D2' B D2 /\ prove G1 D1 /\
   prove G2 D2

12 other subgoals.

cut_admissibility < exists D3, D5, D1'1, LL.
Subgoal 9.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 exists G1 G2, adj L1 (tensor A1 B) M /\ merge D1'1 LL L1 /\ merge G1 G2 L /\
   adj D1'1 A1 D3 /\ adj LL B D5 /\ prove G1 D3 /\ prove G2 D5

12 other subgoals.

cut_admissibility < exists G3, G5.
Subgoal 9.5.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 D1'1 D2' G3 G4 KK KK1 U G5 D5
           LL L L1 U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (tensor A1 B) D1
H7 : merge D1'1 D2' D'
H8 : merge G3 G4 G1
H9 : adj D1'1 A1 D3
H10 : adj D2' B D4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D'
H16 : adj KK1 (atom A) D2'
H17 : merge D1'1 KK1 KK
H18 : adj KK1 B U
H19 : adj U (atom A) D4
H20 : merge G2' G4 G5
H21 : merge D2 U D5
H22 : prove G5 D5
H23 : adj LL B D5
H24 : merge D2 KK1 LL
H25 : is_list G3
H26 : is_list G5
H27 : merge G3 G5 L
H28 : merge G5 G3 L
H29 : is_list LL
H30 : is_list D1'1
H31 : merge LL D1'1 L1
H32 : merge D1'1 LL L1
H33 : merge KK1 D1'1 KK
H34 : merge D2 KK L1
H35 : adj KK (tensor A1 B) U1
H36 : adj U1 (atom A) D1
H37 : merge D2 U1 M
H38 : adj L1 (tensor A1 B) M
H39 : perm U1 D1'
H40 : merge D2 D1' M
H41 : merge G4 G3 G1
H42 : merge G2' G1 L
============================
 adj L1 (tensor A1 B) M /\ merge D1'1 LL L1 /\ merge G3 G5 L /\
   adj D1'1 A1 D3 /\ adj LL B D5 /\ prove G3 D3 /\ prove G5 D5

12 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H38, apply H32), apply H27), apply H9), apply H23), apply H11), apply H22).
Subgoal 9.6:

Variables: G1 D1' G2 G2' D2 A
C <-- atom A
D1 <-- nil
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 nil @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) nil
H5 : adj G2' (atom A) G2
H6 : adj nil bot G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

11 other subgoals.

cut_admissibility < case H4.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H8 : atom A = bot /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < case H8.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply IH1 to H1 H7 H3 H9 H5.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK G3 D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_swap to H9 H6.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK G3 D3 U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply add_to_merge_right to H13 H11.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK G3 D3 U M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U (atom A) D1
H15 : merge D2 U M
H16 : adj D3 bot M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply adj_same_result to H14 H4.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK G3 D3 U M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U (atom A) D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < apply perm_merge_2 to H15 H17.
Subgoal 9.7:

Variables: G1 D1 D1' G2 G2' D2 A D' KK G3 D3 U M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' bot D1
H7 : prove G1 D' **
H9 : adj KK (atom A) D'
H10 : merge G2' G1 G3
H11 : merge D2 KK D3
H12 : prove G3 D3
H13 : adj KK bot U
H14 : adj U (atom A) D1
H15 : merge D2 U M
H16 : adj D3 bot M
H17 : perm U D1'
H18 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

10 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H10, apply H18), unfold(prove, 7, exists[D' = D3] split(apply H16, apply H12))).
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H10 : atom A = par A1 B /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < case H10.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H11 H8.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H13 H7.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H17 H14.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H20 H12.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_swap to H11 H6.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL LL1 U2
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A1 B) U2
H24 : adj U2 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H23 H22.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A1 B) U2
H24 : adj U2 (atom A) D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply adj_same_result to H24 H4.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A1 B) U2
H24 : adj U2 (atom A) D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A1 B) M
H27 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply perm_merge_2 to H25 H27.
Subgoal 9.8:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 D4 KK U U1 G3 D5 LL LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (par A1 B) D1
H7 : adj D4 A1 D3
H8 : adj D' B D4
H9 : prove G1 D3 **
H11 : adj KK (atom A) D'
H12 : adj KK B U
H13 : adj U (atom A) D4
H14 : adj U A1 U1
H15 : adj U1 (atom A) D3
H16 : merge G2' G1 G3
H17 : merge D2 U1 D5
H18 : prove G3 D5
H19 : adj LL A1 D5
H20 : merge D2 U LL
H21 : adj LL1 B LL
H22 : merge D2 KK LL1
H23 : adj KK (par A1 B) U2
H24 : adj U2 (atom A) D1
H25 : merge D2 U2 M
H26 : adj LL1 (par A1 B) M
H27 : perm U2 D1'
H28 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H16, apply H28), unfold(prove, 8, exists[A = A1, B = B, D' = LL1, D1 = D5, D2 = LL] split(split(split(apply H26, apply H19), apply H21), apply H18))).
Subgoal 9.9:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_3 to H8 H4.
Subgoal 9.9:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H13 : (exists JJ, adj JJ (atom A) D3 /\ merge JJ D4 D1') \/
        (exists KK, adj KK (atom A) D4 /\ merge D3 KK D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < case H13.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply IH1 to H1 H11 H3 H14 H5.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H9.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_2_is_list to H7.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H21 : is_list LL
H22 : is_list G2'1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H7.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H24.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_2_is_list to H8.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A1 B) M
H27 : is_list D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A1 B) M
H27 : is_list D4
H28 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply merge_exists to *H28 *H27.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A1 B) M
H29 : merge D5 D4 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < apply change_merge_order to H29 H17 H15.
Subgoal 9.9.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 JJ G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj JJ (atom A) D3
H15 : merge JJ D4 D1'
H16 : merge G2' G3 G5
H17 : merge D2 JJ D5
H18 : prove G5 D5
H19 : adj LL A1 G5
H20 : merge G2' G1' LL
H23 : merge LL G2'1 L
H24 : merge G2' G' L
H25 : merge G2' G1 M
H26 : adj L (par A1 B) M
H29 : merge D5 D4 L1
H30 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

9 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = L1] split(split(apply H25, apply H30), unfold(prove, 9, exists[A = A1, B = B, G' = L, G1 = G5, G2 = G4, G1' = LL, G2' = G2'1, D1 = D5, D2 = D4] split(split(split(split(split(split(apply H26, apply H23), apply H29), apply H19), apply H10), apply H18), apply H12))).
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply IH1 to H1 H12 H3 H14 H5.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_unadj_2 to H16 H10.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_3_is_list to H20.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_1_is_list to H7.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H21 : is_list LL
H22 : is_list G1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to *H21 *H22.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_sym to H23.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_sym to H7.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply change_merge_order to H23 H20 H25.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H26.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_3_is_list to H17.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H29 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_1_is_list to H8.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H29 : is_list D5
H30 : is_list D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_exists to *H29 *H30.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_sym to H31.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply merge_sym to H15.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < apply change_merge_order to H31 H17 H33.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

8 other subgoals.

cut_admissibility < exists M, L1.
Subgoal 9.9.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M /\ merge D2 D1' L1 /\ prove M L1

8 other subgoals.

cut_admissibility < split.
Subgoal 9.9.2.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge G2' G1 M

10 other subgoals.

cut_admissibility < search.
Witness: apply H27.
Subgoal 9.9.2.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 merge D2 D1' L1

9 other subgoals.

cut_admissibility < search.
Witness: apply H34.
Subgoal 9.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 prove M L1

8 other subgoals.

cut_admissibility < unfold 9.
Subgoal 9.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists A B G' G1 G2 G1' G2' D1 D2, adj G' (par A B) M /\ merge G1' G2' G' /\
   merge D1 D2 L1 /\ adj G1' A G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

8 other subgoals.

cut_admissibility < exists A1, B, L.
Subgoal 9.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists G1 G2 G1' G2' D1 D2, adj L (par A1 B) M /\ merge G1' G2' L /\
   merge D1 D2 L1 /\ adj G1' A1 G1 /\ adj G2' B G2 /\ prove G1 D1 /\
   prove G2 D2

8 other subgoals.

cut_admissibility < exists G3, G5, G1', LL.
Subgoal 9.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 exists D1 D2, adj L (par A1 B) M /\ merge G1' LL L /\ merge D1 D2 L1 /\
   adj G1' A1 G3 /\ adj LL B G5 /\ prove G3 D1 /\ prove G5 D2

8 other subgoals.

cut_admissibility < exists D3, D5.
Subgoal 9.9.2.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 G1' G2'1 D3 D4 KK G5 D5 LL L M
           L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (par A1 B) G1
H7 : merge G1' G2'1 G'
H8 : merge D3 D4 D1
H9 : adj G1' A1 G3
H10 : adj G2'1 B G4
H11 : prove G3 D3 **
H12 : prove G4 D4 **
H14 : adj KK (atom A) D4
H15 : merge D3 KK D1'
H16 : merge G2' G4 G5
H17 : merge D2 KK D5
H18 : prove G5 D5
H19 : adj LL B G5
H20 : merge G2' G2'1 LL
H23 : merge LL G1' L
H24 : merge G1' LL L
H25 : merge G2'1 G1' G'
H26 : merge G2' G' L
H27 : merge G2' G1 M
H28 : adj L (par A1 B) M
H31 : merge D5 D3 L1
H32 : merge D3 D5 L1
H33 : merge KK D3 D1'
H34 : merge D2 D1' L1
============================
 adj L (par A1 B) M /\ merge G1' LL L /\ merge D3 D5 L1 /\ adj G1' A1 G3 /\
   adj LL B G5 /\ prove G3 D3 /\ prove G5 D5

8 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(apply H28, apply H24), apply H32), apply H9), apply H19), apply H11), apply H18).
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_3_is_list to H6.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H8 : is_list G2'
H9 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H9.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H12 : is_list D2
H13 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_exists to *H12 *H13.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_unadj_2 to H10 H6.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L L1 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < apply merge_3_is_list to H14.
Subgoal 9.10:

Variables: G1 D1 D1' G2 G2' D2 A G' L L1 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' zero G1
H7 : is_list D1
H10 : merge G2' G1 L
H11 : is_list G2
H14 : merge D2 D1' L1
H15 : adj LL zero L
H16 : merge G2' G' LL
H17 : is_list L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

7 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H10, apply H14), unfold(prove, 10, exists[G' = LL] split(apply H15, apply H17))).
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H7 : is_list G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_1_is_list to H5.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D'
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H7 : is_list G1
H8 : is_list G2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_exists to *H8 *H7.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply prove_is_list to H3.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_1_is_list to H4.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_exists to H11 H12.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply adj_same_result_diff to H6 H4.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L L1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H14 : top = atom A /\ perm D' D1' \/ (exists KK, adj KK top D1')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < case H14.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L L1 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_unadj_2 to H13 H15.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L L1 KK LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < apply merge_3_is_list to H9.
Subgoal 9.11:

Variables: G1 D1 D1' G2 G2' D2 A D' L L1 KK LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' top D1
H9 : merge G2' G1 L
H10 : is_list G2
H11 : is_list D2
H12 : is_list D1'
H13 : merge D2 D1' L1
H15 : adj KK top D1'
H16 : adj LL top L1
H17 : merge D2 KK LL
H18 : is_list L
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

6 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = L, D3 = L1] split(split(apply H9, apply H13), unfold(prove, 11, exists[D' = LL] split(apply H16, apply H18))).
Subgoal 9.12:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' A1 G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 9.12:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' A1 G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 9.12:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' A1 G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A1 G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 9.12:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3 LL M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' A1 G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL A1 G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

5 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 12, exists[A = A1, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 9.13:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H4 H5.
Subgoal 9.13:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply merge_unadj_2 to H9 H7.
Subgoal 9.13:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < apply add_to_merge_right to H6 H13.
Subgoal 9.13:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G3 G4 D3 LL M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (with A1 B) G1
H7 : adj G' B G3
H8 : prove G3 D1 **
H9 : merge G2' G3 G4
H10 : merge D2 D1' D3
H11 : prove G4 D3
H12 : adj LL B G4
H13 : merge G2' G' LL
H14 : merge G2' G1 M
H15 : adj LL (with A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

4 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = M, D3 = D3] split(split(apply H14, apply H10), unfold(prove, 13, exists[A = A1, B = B, G' = LL, G1 = G4] split(split(apply H15, apply H12), apply H11))).
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H14 : atom A = with A1 B /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < case H14.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H15 H7.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H9 H3 H17 H5.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H19 H16.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_sym to H11.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_perm_result to H23 H15.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H24 H8.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply IH1 to H1 H10 H3 H27 H5.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_unadj_2 to H29 H26.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H18 H12.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H28 H13.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_perm_det to H34 H33.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_2_is_list to H35.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H36 : is_list G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_refl to *H36.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H22 H25.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply merge_perm_det to H32 H38.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_swap to H15 H6.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply add_to_merge_right to H40 H22.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply adj_same_result to H41 H4.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < apply perm_merge_2 to H42 H44.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

3 other subgoals.

cut_admissibility < exists G5, M.
Subgoal 9.14:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5 /\ merge D2 D1' M /\ prove G5 M

3 other subgoals.

cut_admissibility < split.
Subgoal 9.14.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge G2' G1 G5

5 other subgoals.

cut_admissibility < search.
Witness: apply H33.
Subgoal 9.14.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 merge D2 D1' M

4 other subgoals.

cut_admissibility < search.
Witness: apply H45.
Subgoal 9.14.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 prove G5 M

3 other subgoals.

cut_admissibility < unfold 14.
Subgoal 9.14.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists A B D' D2' D1 D2 G1 G2, adj D' (with A B) M /\ adj D' A D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' D' /\ perm G1 G5 /\
   perm G2 G5

3 other subgoals.

cut_admissibility < exists A1, B, LL.
Subgoal 9.14.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists D2' D1 D2 G1 G2, adj LL (with A1 B) M /\ adj LL A1 D1 /\
   adj D2' B D2 /\ prove G1 D1 /\ prove G2 D2 /\ perm D2' LL /\ perm G1 G5 /\
   perm G2 G5

3 other subgoals.

cut_admissibility < exists LL1, D5, D6.
Subgoal 9.14.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 exists G1 G2, adj LL (with A1 B) M /\ adj LL A1 D5 /\ adj LL1 B D6 /\
   prove G1 D5 /\ prove G2 D6 /\ perm LL1 LL /\ perm G1 G5 /\ perm G2 G5

3 other subgoals.

cut_admissibility < exists G5, G6.
Subgoal 9.14.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D2' D3 D4 G3 G4 KK U G5 D5 LL KK1 U1
           G6 D6 LL1 U2 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (with A1 B) D1
H7 : adj D' A1 D3
H8 : adj D2' B D4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm D2' D'
H12 : perm G3 G1
H13 : perm G4 G1
H15 : adj KK (atom A) D'
H16 : adj KK A1 U
H17 : adj U (atom A) D3
H18 : merge G2' G3 G5
H19 : merge D2 U D5
H20 : prove G5 D5
H21 : adj LL A1 D5
H22 : merge D2 KK LL
H23 : perm D' D2'
H24 : adj KK1 (atom A) D2'
H25 : perm KK KK1
H26 : adj KK1 B U1
H27 : adj U1 (atom A) D4
H28 : merge G2' G4 G6
H29 : merge D2 U1 D6
H30 : prove G6 D6
H31 : adj LL1 B D6
H32 : merge D2 KK1 LL1
H33 : merge G2' G1 G5
H34 : merge G2' G1 G6
H35 : perm G6 G5
H37 : perm G5 G5
H38 : merge D2 KK1 LL
H39 : perm LL1 LL
H40 : adj KK (with A1 B) U2
H41 : adj U2 (atom A) D1
H42 : merge D2 U2 M
H43 : adj LL (with A1 B) M
H44 : perm U2 D1'
H45 : merge D2 D1' M
============================
 adj LL (with A1 B) M /\ adj LL A1 D5 /\ adj LL1 B D6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm G5 G5 /\ perm G6 G5

3 other subgoals.

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H43, apply H21), apply H31), apply H20), apply H30), apply H39), apply H37), apply H35).
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H9 : atom A = plus A1 B /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < case H9.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A1 D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A1 D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A1 D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A1 D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 9.15:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' A1 D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK A1 U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL A1 D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

2 other subgoals.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 15, exists[A = A1, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_same_result_diff to H4 H6.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H9 : atom A = plus A1 B /\ perm D1' D' \/ (exists KK, adj KK (atom A) D')
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < case H9.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_swap to H10 H7.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply IH1 to H1 H8 H3 H12 H5.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply merge_unadj_2 to H14 H11.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_swap to H10 H6.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply add_to_merge_right to H18 H17.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply adj_same_result to H19 H4.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
H22 : perm U1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < apply perm_merge_2 to H20 H22.
Subgoal 9.16:

Variables: G1 D1 D1' G2 G2' D2 A A1 B D' D3 KK U G3 D4 LL U1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj D' (plus A1 B) D1
H7 : adj D' B D3
H8 : prove G1 D3 **
H10 : adj KK (atom A) D'
H11 : adj KK B U
H12 : adj U (atom A) D3
H13 : merge G2' G1 G3
H14 : merge D2 U D4
H15 : prove G3 D4
H16 : adj LL B D4
H17 : merge D2 KK LL
H18 : adj KK (plus A1 B) U1
H19 : adj U1 (atom A) D1
H20 : merge D2 U1 M
H21 : adj LL (plus A1 B) M
H22 : perm U1 D1'
H23 : merge D2 D1' M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

1 other subgoal.

cut_admissibility < search.
Witness: exists[G3 = G3, D3 = M] split(split(apply H13, apply H23), unfold(prove, 16, exists[A = A1, B = B, D' = LL, D1 = D4] split(split(apply H21, apply H16), apply H15))).
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_sym to H12.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply adj_perm_result to H14 H4.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply IH1 to H1 H9 H3 H15 H5.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply merge_unadj_2 to H17 H7.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_sym to H13.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply adj_perm_result to H22 H4.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply IH1 to H1 H10 H3 H23 H5.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply merge_unadj_2 to H25 H8.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_merge_2 to H29 H11.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply merge_perm_det to H30 H21.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply add_to_merge_right to H6 H21.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H16 : perm D1' KK
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_sym to *H16.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_merge_2 to H18 H34.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H24 : perm D1' KK1
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_sym to *H24.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_merge_2 to H26 H36.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply merge_perm_det to H37 H35.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_2_is_list to H38.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H39 : is_list D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < apply perm_refl to *H39.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3

cut_admissibility < exists M, D5.
Subgoal 9.17:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M /\ merge D2 D1' D5 /\ prove M D5

cut_admissibility < split.
Subgoal 9.17.1:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge G2' G1 M

2 other subgoals.

cut_admissibility < search.
Witness: apply H32.
Subgoal 9.17.2:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 merge D2 D1' D5

1 other subgoal.

cut_admissibility < search.
Witness: apply H35.
Subgoal 9.17.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 prove M D5

cut_admissibility < unfold 17.
Subgoal 9.17.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists A B G' G2' G1 G2 D1 D2, adj G' (plus A B) M /\ adj G' A G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' G' /\ perm D1 D5 /\
   perm D2 D5

cut_admissibility < exists A1, B, LL.
Subgoal 9.17.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists G2' G1 G2 D1 D2, adj LL (plus A1 B) M /\ adj LL A1 G1 /\
   adj G2' B G2 /\ prove G1 D1 /\ prove G2 D2 /\ perm G2' LL /\ perm D1 D5 /\
   perm D2 D5

cut_admissibility < exists LL1, G5, G6.
Subgoal 9.17.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 exists D1 D2, adj LL (plus A1 B) M /\ adj LL A1 G5 /\ adj LL1 B G6 /\
   prove G5 D1 /\ prove G6 D2 /\ perm LL1 LL /\ perm D1 D5 /\ perm D2 D5

cut_admissibility < exists D5, D6.
Subgoal 9.17.3:

Variables: G1 D1 D1' G2 G2' D2 A A1 B G' G2'1 G3 G4 D3 D4 KK G5 D5 LL KK1 G6
           D6 LL1 M
C <-- atom A
IH : forall C G1 D1 D1' G2 G2' D2, formula C * -> prove G1 D1 ->
       prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
       (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH1 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 ** ->
        prove G2 D2 -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
IH2 : forall C G1 D1 D1' G2 G2' D2, formula C @ -> prove G1 D1 @@ ->
        prove G2 D2 *** -> adj D1' C D1 -> adj G2' C G2 ->
        (exists G3 D3, merge G2' G1 G3 /\ merge D2 D1' D3 /\ prove G3 D3)
H1 : formula (atom A) @
H2 : prove G1 D1 @@
H3 : prove G2 D2 @@@
H4 : adj D1' (atom A) D1
H5 : adj G2' (atom A) G2
H6 : adj G' (plus A1 B) G1
H7 : adj G' A1 G3
H8 : adj G2'1 B G4
H9 : prove G3 D3 **
H10 : prove G4 D4 **
H11 : perm G2'1 G'
H12 : perm D3 D1
H13 : perm D4 D1
H14 : perm D1 D3
H15 : adj KK (atom A) D3
H17 : merge G2' G3 G5
H18 : merge D2 KK D5
H19 : prove G5 D5
H20 : adj LL A1 G5
H21 : merge G2' G' LL
H22 : perm D1 D4
H23 : adj KK1 (atom A) D4
H25 : merge G2' G4 G6
H26 : merge D2 KK1 D6
H27 : prove G6 D6
H28 : adj LL1 B G6
H29 : merge G2' G2'1 LL1
H30 : merge G2' G' LL1
H31 : perm LL1 LL
H32 : merge G2' G1 M
H33 : adj LL (plus A1 B) M
H34 : perm KK D1'
H35 : merge D2 D1' D5
H36 : perm KK1 D1'
H37 : merge D2 D1' D6
H38 : perm D6 D5
H40 : perm D5 D5
============================
 adj LL (plus A1 B) M /\ adj LL A1 G5 /\ adj LL1 B G6 /\ prove G5 D5 /\
   prove G6 D6 /\ perm LL1 LL /\ perm D5 D5 /\ perm D6 D5

cut_admissibility < search.
Witness: split(split(split(split(split(split(split(apply H33, apply H20), apply H28), apply H19), apply H27), apply H31), apply H40), apply H38).
Proof completed.
Abella <